def sitemap_view(request): URL_FORMAT = '%s://%s%s' PROTOCOL = 'https' host = request.get_host() partner_name = partner_short_name(request) partner_site = PartnerSite.objects.get(short_name=partner_name) partner_species = PartnerSpecies.objects.filter( partner=partner_site).values_list('species__scientific_name', 'species__family__name', 'species__genus__name') plant_names = sorted([species.lower() for (species, family, genus) in partner_species]) families = sorted(set([family.lower() for (species, family, genus) in partner_species])) genera = sorted(set([genus.lower() for (species, family, genus) in partner_species])) urls = [URL_FORMAT % ( PROTOCOL, host, reverse('taxa-species', args=(plant_name.split(' ')))) for plant_name in plant_names] urls.extend([URL_FORMAT % (PROTOCOL, host, reverse('taxa-family', args=([family_name]))) for family_name in families]) urls.extend([URL_FORMAT % (PROTOCOL, host, reverse('taxa-genus', args=([genus_name]))) for genus_name in genera]) return render_to_response('gobotany/sitemap.txt', { 'urls': urls, }, context_instance=RequestContext(request), content_type='text/plain; charset=utf-8')
def level3(request, key, pilegroup_slug, pile_slug): pile = get_object_or_404(Pile, slug=pile_slug) if pile.pilegroup.slug != pilegroup_slug: raise Http404 short_name = partner_short_name(request) subgroup_results_page = SubgroupResultsPage.objects.get(subgroup=pile) return render_per_partner('results.html', { 'dev_flag': 1 if request.GET.has_key('dev') else 0, 'key': key, 'partner_site': short_name, 'subgroup_results_page': subgroup_results_page, 'pilegroup': pile.pilegroup, 'pile': pile, }, request)
def level3(request, key, pilegroup_slug, pile_slug): pile = get_object_or_404(Pile, slug=pile_slug) if pile.pilegroup.slug != pilegroup_slug: raise Http404 short_name = partner_short_name(request) subgroup_results_page = SubgroupResultsPage.objects.get(subgroup=pile) return render_per_partner( 'results.html', { 'dev_flag': 1 if request.GET.has_key('dev') else 0, 'key': key, 'partner_site': short_name, 'subgroup_results_page': subgroup_results_page, 'pilegroup': pile.pilegroup, 'pile': pile, }, request)
def level1(request, key): short_name = partner_short_name(request) groups_list_page = GroupsListPage.objects.get() pilegroups = [] for pilegroup in ordered_pilegroups(): images = _images_with_copyright_holders( ContentImage.objects.filter( pilegroupimage__pile_group=pilegroup) .select_related('image_type')) pilegroups.append((pilegroup, images, get_simple_url(key, pilegroup))) return render_per_partner('simple.html', { 'partner_site': short_name, 'groups_list_page': groups_list_page, 'key': key, 'pilegroups': pilegroups }, request)
def level1(request, key): short_name = partner_short_name(request) groups_list_page = GroupsListPage.objects.get() pilegroups = [] for pilegroup in ordered_pilegroups(): images = _images_with_copyright_holders( ContentImage.objects.filter(pilegroupimage__pile_group=pilegroup). select_related('image_type')) pilegroups.append((pilegroup, images, get_simple_url(key, pilegroup))) return render_per_partner( 'simple.html', { 'partner_site': short_name, 'groups_list_page': groups_list_page, 'key': key, 'pilegroups': pilegroups }, request)
def level2(request, key, pilegroup_slug): pilegroup = get_object_or_404(PileGroup, slug=pilegroup_slug) short_name = partner_short_name(request) subgroups_list_page = SubgroupsListPage.objects.get(group=pilegroup) piles = [] for pile in ordered_piles(pilegroup): images = _images_with_copyright_holders( ContentImage.objects.filter(pileimage__pile=pile) .select_related('image_type')) piles.append((pile, images, get_simple_url(key, pilegroup, pile))) return render_per_partner('pilegroup.html', { 'partner_site': short_name, 'subgroups_list_page': subgroups_list_page, 'key': key, 'pilegroup': pilegroup, 'piles': piles }, request)
def page(request, slug=u'key-to-the-families'): if slug != slug.lower(): raise Http404 title = models.slug_to_title(slug) if title.startswith('Section '): title = title.title() page = get_object_or_404(models.Page, title=title) if page.rank == 'species': raise Http404 proxy = _Proxy(page) return render(request, 'dkey/page.html', { 'partner_site': partner_short_name(request), 'groups': get_groups, 'leads': (lambda: proxy.leads), 'lead_hierarchy': (lambda: proxy.lead_hierarchy), 'page': (lambda: proxy.page), 'rank_beneath': (lambda: proxy.rank_beneath), 'taxa_beneath': (lambda: proxy.taxa_beneath), 'next_page': (lambda: proxy.next() or proxy.page), })
def page(request, slug='key-to-the-families'): if slug != slug.lower(): raise Http404 title = models.slug_to_title(slug) if title.startswith('Section '): title = title.title() page = get_object_or_404(models.Page, title=title) if page.rank == 'species': raise Http404 proxy = _Proxy(page) return render( request, 'dkey/page.html', { 'partner_site': partner_short_name(request), 'groups': get_groups, 'leads': (lambda: proxy.leads), 'lead_hierarchy': (lambda: proxy.lead_hierarchy), 'page': (lambda: proxy.page), 'rank_beneath': (lambda: proxy.rank_beneath), 'taxa_beneath': (lambda: proxy.taxa_beneath), 'next_page': (lambda: next(proxy) or proxy.page), })
def level2(request, key, pilegroup_slug): pilegroup = get_object_or_404(PileGroup, slug=pilegroup_slug) short_name = partner_short_name(request) subgroups_list_page = SubgroupsListPage.objects.get(group=pilegroup) piles = [] for pile in ordered_piles(pilegroup): images = _images_with_copyright_holders( ContentImage.objects.filter( pileimage__pile=pile).select_related('image_type')) piles.append((pile, images, get_simple_url(key, pilegroup, pile))) return render_per_partner( 'pilegroup.html', { 'partner_site': short_name, 'subgroups_list_page': subgroups_list_page, 'key': key, 'pilegroup': pilegroup, 'piles': piles }, request)
def sitemap_view(request): URL_FORMAT = "%s://%s%s" PROTOCOL = "https" host = request.get_host() partner_name = partner_short_name(request) partner_site = PartnerSite.objects.get(short_name=partner_name) partner_species = PartnerSpecies.objects.filter(partner=partner_site).values_list( "species__scientific_name", "species__family__name", "species__genus__name" ) plant_names = sorted([species.lower() for (species, family, genus) in partner_species]) families = sorted(set([family.lower() for (species, family, genus) in partner_species])) genera = sorted(set([genus.lower() for (species, family, genus) in partner_species])) urls = [ URL_FORMAT % (PROTOCOL, host, reverse("taxa-species", args=(plant_name.split(" ")))) for plant_name in plant_names ] urls.extend( [URL_FORMAT % (PROTOCOL, host, reverse("taxa-family", args=([family_name]))) for family_name in families] ) urls.extend([URL_FORMAT % (PROTOCOL, host, reverse("taxa-genus", args=([genus_name]))) for genus_name in genera]) return render(request, "gobotany/sitemap.txt", {"urls": urls}, content_type="text/plain; charset=utf-8")
def sitemap_view(request): URL_FORMAT = '%s://%s%s' PROTOCOL = 'https' host = request.get_host() partner_name = partner_short_name(request) partner_site = PartnerSite.objects.get(short_name=partner_name) partner_species = PartnerSpecies.objects.filter( partner=partner_site).values_list('species__scientific_name', 'species__family__name', 'species__genus__name') plant_names = sorted( [species.lower() for (species, family, genus) in partner_species]) families = sorted( set([family.lower() for (species, family, genus) in partner_species])) genera = sorted( set([genus.lower() for (species, family, genus) in partner_species])) urls = [ URL_FORMAT % (PROTOCOL, host, reverse_lazy('taxa-species', args=(plant_name.split(' ')))) for plant_name in plant_names ] urls.extend([ URL_FORMAT % (PROTOCOL, host, reverse_lazy('taxa-family', args=([family_name]))) for family_name in families ]) urls.extend([ URL_FORMAT % (PROTOCOL, host, reverse_lazy('taxa-genus', args=([genus_name]))) for genus_name in genera ]) return render(request, 'gobotany/sitemap.txt', { 'urls': urls, }, content_type='text/plain; charset=utf-8')