Пример #1
0
def person(request, person_id, person):
    try:
        person = check_url(Person, person_id, person)
    except UnmatchingSlugException as e:
        return HttpResponsePermanentRedirect(e.args[0].get_absolute_url())

    # if person.productions.count() == 0:
    #     raise Http404()

    try:
        fp = open(settings.OUR_ROOT + '/data/flickr/person/' + person_id)
        flickr = fp.read()
        fp.close()
        flickr = json.loads(flickr)
    except:
        flickr = ''

    past, future = productions_for(person)
    plays = person.plays.all()
    photo_form = PhotoForm(person)
    alert = person.alerts.filter(user=request.user.pk)
    same_name = Person.objects.filter(
        first_name=person.first_name,
        last_name=person.last_name).exclude(id=person.id)
    return render(
        request, 'people/person.html', {
            'person': person,
            'past': past,
            'future': future,
            'plays': plays,
            'photo_form': photo_form,
            'flickr': flickr,
            'alert': alert,
            'same_name': same_name,
        })
Пример #2
0
def search_around(request, s, type=''):
    s = s.strip()
    m = re.match(r'([-\d.]+)\s*,\s*([-\d.]+)$', s)

    if m:
        lat, lon = m.groups()
        name = request.GET.get('name', '')
    elif validate_postcode(s):
        try:
            r = urllib.request.urlopen(
                'https://mapit.mysociety.org/postcode/%s' %
                urllib.parse.quote(s)).read()
            loc = json.loads(r)
            lat, lon = loc['wgs84_lat'], loc['wgs84_lon']
            name = re.sub(r'(\d[A-Z]{2})', r' \1', s.upper())
        except:
            return search(request, redirect_okay=False)
    elif validate_partial_postcode(s):
        try:
            r = urllib.request.urlopen(
                'https://mapit.mysociety.org/postcode/partial/' +
                urllib.parse.quote(s)).read()
            r = json.loads(r)
            lat, lon = r['wgs84_lat'], r['wgs84_lon']
        except:
            return search(request, redirect_okay=False)
        name = s.upper()
    else:
        raise Http404()

    if not lat or not lon:
        return

    places = Place.objects.around(float(lat), float(lon))
    if not type:
        past, future = productions_for(places, 'places')
        alert = AlertLocal.objects.filter(user=request.user.id,
                                          latitude=lat,
                                          longitude=lon)
        return render(
            request, 'search-around.html', {
                'places': places,
                'past': past,
                'future': future,
                'lat': lat,
                'lon': lon,
                'latlon': '%s,%s' % (lat, lon),
                'name': name,
                'alert': alert,
            })
    return productions_list(request, places, type,
                            'search-around-productions.html', {
                                'lat': lat,
                                'lon': lon,
                            })
Пример #3
0
def place(request, place_id, place):
    try:
        place = check_url(Place, place_id, place)
    except UnmatchingSlugException as e:
        return HttpResponsePermanentRedirect(e.args[0].get_absolute_url())
    past, future = productions_for(place)
    photo_form = PhotoForm(place)
    alert = place.alerts.filter(user=request.user.pk)
    return render(request, 'place.html', {
        'place': place,
        'past': past,
        'future': future,
        'photo_form': photo_form,
        'alert': alert,
    })
Пример #4
0
def play(request, play_id, play):
    try:
        play = check_url(Play, play_id, play)
    except UnmatchingSlugException as e:
        return HttpResponsePermanentRedirect(e.args[0].get_absolute_url())
    past, future = productions_for(play)
    alert = play.alerts.filter(user=request.user.pk)
    same_name = Play.objects.filter(title=play.title).exclude(id=play.id)
    return render(
        request, 'plays/play.html', {
            'play': play,
            'past': past,
            'future': future,
            'alert': alert,
            'same_name': same_name,
        })
Пример #5
0
def search_around(request, s, type=''):
    s = s.strip()
    m = re.match('([-\d.]+)\s*,\s*([-\d.]+)$', s)

    if m:
        lat, lon = m.groups()
        name = request.GET.get('name', '')
    elif validate_postcode(s):
        try:
            r = urllib.urlopen('http://mapit.mysociety.org/postcode/%s' % urllib.quote(s)).read()
            loc = simplejson.loads(r)
            pc, lat, lon = loc['postcode'], loc['wgs84_lat'], loc['wgs84_lon']
            name = re.sub('(\d[A-Z]{2})', r' \1', s.upper())
        except:
            return search(request, redirect_okay=False)
    elif validate_partial_postcode(s):
        try:
            r = urllib.urlopen('http://mapit.mysociety.org/postcode/partial/' + urllib.quote(s)).read()
            r = simplejson.loads(r)
            lat, lon = r['wgs84_lat'], r['wgs84_lon']
        except:
            return search(request, redirect_okay=False)
        name = s.upper()
    else:
        raise Exception, 'Bad request'

    if not lat or not lon:
        return

    places = Place.objects.around(float(lat), float(lon))
    if not type:
        past, future = productions_for(places, 'places')
        alert = AlertLocal.objects.filter(user=request.user.id, latitude=lat, longitude=lon)
        return render(request, 'search-around.html', {
            'places': places,
            'past': past,
            'future': future,
            'lat': lat,
            'lon': lon,
            'latlon': '%s,%s' % (lat, lon),
            'name': name,
            'alert': alert,
        })
    return productions_list(request, places, type, 'search-around-productions.html', {
        'lat': lat,
        'lon': lon,
    })
Пример #6
0
        person = check_url(Person, person_id, person)
    except UnmatchingSlugException, e:
        return HttpResponsePermanentRedirect(e.args[0].get_absolute_url())

    #if person.productions.count() == 0:
    #    raise Http404()

    try:
        fp = open(settings.OUR_ROOT + '/data/flickr/person/' + person_id)
        flickr = fp.read()
        fp.close()
        flickr = json.loads(flickr)
    except:
        flickr = ''

    past, future = productions_for(person)
    plays = person.plays.all()
    photo_form = PhotoForm(person)
    alert = person.alerts.filter(user=request.user.pk)
    same_name = Person.objects.filter(first_name=person.first_name, last_name=person.last_name).exclude(id=person.id)
    return render(request, 'people/person.html', {
        'person': person,
        'past': past,
        'future': future,
        'plays': plays,
        'photo_form': photo_form,
        'flickr': flickr,
        'alert': alert,
        'same_name': same_name,
    })
Пример #7
0
        if form.is_valid():
            form.save()
            messages.success(request, "Your changes have been stored; thank you.")
            return HttpResponseRedirect(place.get_absolute_url())

    return render(request, 'places/place_edit.html', {
        'place': place,
        'form': form,
    })

def place(request, place_id, place):
    try:
        place = check_url(Place, place_id, place)
    except UnmatchingSlugException, e:
        return HttpResponsePermanentRedirect(e.args[0].get_absolute_url())
    past, future = productions_for(place)
    photo_form = PhotoForm(place)
    alert = place.alerts.filter(user=request.user.pk)
    return render(request, 'place.html', {
        'place': place,
        'past': past,
        'future': future,
        'photo_form': photo_form,
        'alert': alert,
    })

#@login_required
#def place_alert(request, place_id, place, type):
#    try:
#        place = check_url(Place, place_id, place)
#    except UnmatchingSlugException, e: