Ejemplo n.º 1
0
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')
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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),
            })
Ejemplo n.º 8
0
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),
        })
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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")
Ejemplo n.º 11
0
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')