in bedrock/products/views.py [0:0]
def resource_center_landing_view(request):
ARTICLE_GROUP_SIZE = 6
template_name = "products/vpn/resource-center/landing.html"
vpn_available_in_country = vpn_available(request)
mobile_sub_only = vpn_available_mobile_sub_only(request)
active_locales = locales_with_available_content(
classification=CONTENT_CLASSIFICATION_VPN,
content_type=CONTENT_TYPE_PAGE_RESOURCE_CENTER,
)
requested_locale = l10n_utils.get_locale(request)
if requested_locale not in active_locales:
return l10n_utils.redirect_to_best_locale(
request,
translations=active_locales,
)
resource_articles = ContentfulEntry.objects.get_entries_by_type(
locale=requested_locale,
classification=CONTENT_CLASSIFICATION_VPN,
content_type=CONTENT_TYPE_PAGE_RESOURCE_CENTER,
)
category_list = _build_category_list(resource_articles)
selected_category = unquote_plus(request.GET.get(ARTICLE_CATEGORY_LABEL, ""))
filtered_articles = _filter_articles(
resource_articles,
category=selected_category,
)
# The resource_articles are ContentfulEntry objects at the moment, but
# we really only need their JSON data from here on
filtered_article_data = [x.data for x in filtered_articles]
first_article_group, second_article_group = (
filtered_article_data[:ARTICLE_GROUP_SIZE],
filtered_article_data[ARTICLE_GROUP_SIZE:],
)
ctx = {
"active_locales": active_locales,
"vpn_available": vpn_available_in_country,
"mobile_sub_only": mobile_sub_only,
"category_list": category_list,
"first_article_group": first_article_group,
"second_article_group": second_article_group,
"selected_category": escape(selected_category),
}
return l10n_utils.render(
request,
template_name,
ctx,
ftl_files=["products/vpn/resource-center", "products/vpn/shared"],
)