summaryrefslogtreecommitdiff
path: root/app/projects/views.py
blob: ad5f167a76d707bdb039aa9a799b6523f404cb95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from django.shortcuts import render, get_object_or_404
from django.template import RequestContext
from django.apps import apps

from projects.shortcuts import render_to_geojson
from projects.models.natparks import NationalParks
from projects.models.gifs import AnimatedGif

projects = {
    '5x5': 'FiveBy',
    '6x6': 'SixBy',
    'national-parks': 'NationalParks',
    'code': 'Code'
}


def detail(request, slug):
    """Projects by slug"""
    name = projects[slug]
    model = apps.get_model('projects', name)
    if slug == 'national-parks':
        qs = model.objects.filter(visited__exact=True).order_by("-date_visited_begin")
    else:
        qs = model.objects.filter(status__exact=1)
    context = {
        "object_list": qs,
    }
    template = 'details/%s.html' % (slug)
    return render(request, template, context)


def gif_detail(request, slug):
    obj = get_object_or_404(AnimatedGif, slug__exact=slug)
    return render(request, 'details/gifs.html', {'object': obj})


def data_json(request, id):
    qs = NationalParks.objects.filter(pk=id)
    return render_to_geojson(
        qs,
        included_fields=['id'],
        geom_attribute='mpoly',
        mimetype='application/json',
        pretty_print=True
    )