def appstore(request, template="appstore/appstore_base.html", sort_by=None): page = int(request.GET.get('page', 1)) include_unapproved = (request.user.is_superuser and request.GET.get('unapproved', False)) if not sort_by: results = Domain.published_snapshots(include_unapproved=include_unapproved, page=page, per_page=PER_PAGE) more_pages = page * PER_PAGE < results.total_rows and len(results) == PER_PAGE # hacky way to deal with approved vs unapproved else: total_results = Domain.published_snapshots(include_unapproved=include_unapproved) if sort_by == 'best': results = Domain.popular_sort(total_results, page) #more_pages = page * PER_PAGE < total_results and page <= 10 elif sort_by == 'hits': results = Domain.hit_sort(total_results, page) #more_pages = page * PER_PAGE < len(total_results) and page <= 10 more_pages = page * PER_PAGE < total_results.total_rows and len(results) == PER_PAGE # hacky way to deal with approved vs unapproved average_ratings = list() for result in results: average_ratings.append([result.name, Review.get_average_rating_by_app(result.original_doc)]) return render_to_response(request, template, _appstore_context({ 'apps': results, 'average_ratings': average_ratings, 'page': page, 'prev_page': (page-1), 'next_page': (page+1), 'more_pages': more_pages, 'sort_by': sort_by, 'include_unapproved': include_unapproved }))
def _get_data(self): query_parts = [] if self.category_filter: query_parts.append('category:"%s"' % self.category_filter) elif self.license_filter: query_parts.append('license:"%s"' % self.license_filter) elif self.category_filter: query_parts.append('organization:"%s"' % self.organization_filter) elif self.region_filter: query_parts.append('region:"%s"' % self.region_filter) if len(query_parts) > 0: query = ' '.join(query_parts) snapshots = Domain.snapshot_search(query) else: snapshots = Domain.published_snapshots()[:20] return snapshots