def new(request): d2p = DictToPoint(request.REQUEST) pnt = d2p.pnt() if request.method == "POST": #an UpdateForm is bundled inside ReportForm report_form = ReportForm(request.POST, request.FILES, user=request.user) # this checks update is_valid too if report_form.is_valid(): # this saves the update as part of the report. report = report_form.save() if report: return (HttpResponseRedirect(report.get_absolute_url())) else: initial = {} initial['lat'] = request.GET['lat'] initial['lon'] = request.GET['lon'] initial['address'] = request.GET.get('address', None) report_form = ReportForm(initial=initial, user=request.user) return render_to_response("reports/new.html", { "google": FixMyStreetMap(pnt, True), 'GOOGLE_KEY': settings.GMAP_KEY, "report_form": report_form, "update_form": report_form.update_form, 'ward': report_form.ward }, context_instance=RequestContext(request))
def new( request ): d2p = DictToPoint( request.REQUEST ) pnt = d2p.pnt() if request.method == "POST": #an UpdateForm is bundled inside ReportForm report_form = ReportForm( request.POST, request.FILES, user=request.user ) # this checks update is_valid too if report_form.is_valid(): # this saves the update as part of the report. report = report_form.save() if report: return( HttpResponseRedirect( report.get_absolute_url() )) else: initial = {} initial['lat' ] =request.GET['lat'] initial['lon'] = request.GET['lon'] initial['address'] = request.GET.get('address',None) report_form = ReportForm( initial=initial, user=request.user ) return render_to_response("reports/new.html", { "google": FixMyStreetMap(pnt, True), 'GOOGLE_KEY': settings.GMAP_KEY, "report_form": report_form, "update_form": report_form.update_form, 'ward': report_form.ward }, context_instance=RequestContext(request))
def __init__(self,data=None,files=None,initial=None,user=None): if data: d2p = DictToPoint(data,exceptclass=None) else: d2p = DictToPoint(initial,exceptclass=None) self.pnt = d2p.pnt() self.ward = d2p.ward() self.update_form = ReportUpdateForm(data=data,initial=initial,user=user,first_update = True) super(ReportForm,self).__init__(data,files, initial=initial) self.fields['category'] = CategoryChoiceField(self.ward)
def __init__(self, data=None, files=None, initial=None, user=None): if data: d2p = DictToPoint(data, exceptclass=None) else: d2p = DictToPoint(initial, exceptclass=None) self.pnt = d2p.pnt() self.ward = d2p.ward() self.update_form = ReportUpdateForm(data=data, initial=initial, user=user, first_update=True) super(ReportForm, self).__init__(data, files, initial=initial) self.fields['category'] = CategoryChoiceField(self.ward)
def search_address(request): if request.method == 'POST': address = iri_to_uri(u'/search?q=%s' % request.POST["q"]) return HttpResponseRedirect( address ) if request.GET.has_key('q'): address = request.GET["q"] return home( request, address, None ) # should have a lat and lon by this time. dict2pt = DictToPoint( request.GET ) pnt = dict2pt.pnt() wards = Ward.objects.filter(geom__contains=dict2pt.__unicode__()) if (len(wards) == 0): return( home(request, None, _("Sorry, we don't yet have that area in our database. Please have your area councillor contact fixmystreet.ca."))) ward = wards[0] # calculate date range for which to return reports if request.GET.has_key('years_ago'): years_ago = int(request.GET['years_ago']) else: years_ago = 0 yearoffset = datetime.timedelta(days = 365 * years_ago ) date_range_end = datetime.datetime.now() - yearoffset date_range_start = date_range_end - datetime.timedelta(days =365) # do we want to show older reports? if Report.objects.filter(ward=ward,created_at__lte=date_range_start).count() > 1: older_reports_link = _search_url(request, years_ago - 1) else: older_reports_link = None reports = Report.objects.filter(created_at__gte = date_range_start, created_at__lte = date_range_end, is_confirmed = True,point__distance_lte=(pnt,D(km=2))).distance(pnt).order_by('-created_at') gmap = FixMyStreetMap(pnt,True,reports) return render_to_response("search_result.html", {'google' : gmap, "pnt": pnt, "enable_map": True, "ward" : wards[0], "reports" : reports, "date_range_start": date_range_start, "date_range_end": date_range_end, "older_reports_link": older_reports_link }, context_instance=RequestContext(request))
def search_address(request): if request.method == 'POST': address = iri_to_uri(u'/search?q=%s' % request.POST["q"]) return HttpResponseRedirect( address ) if request.GET.has_key('q'): address = request.GET["q"] return home( request, address, None ) # should have a lat and lon by this time. dict2pt = DictToPoint( request.GET ) pnt = dict2pt.pnt() ward = dict2pt.ward() if not ward: return( home(request, None, _("Sorry, we don't yet have that area in our database. Please have your area councillor contact fixmystreet.ca."))) try: page_no = int(request.GET.get('page', '1')) except ValueError: page_no = 1 reportQ = Report.objects.filter(is_confirmed = True,point__distance_lte=(pnt,D(km=2))).distance(pnt).order_by('-created_at') paginator = Paginator(reportQ, 100) try: page = paginator.page(page_no) except (EmptyPage, InvalidPage): page = paginator.page(paginator.num_pages) reports = page.object_list gmap = FixMyStreetMap(pnt,True,reports) return render_to_response("search_result.html", {'google' : gmap, 'GOOGLE_KEY': settings.GMAP_KEY, "pnt": pnt, "enable_map": True, "ward" : ward, "reports" : reports, "page":page, "url_parms": "&lat=%s&lon=%s" %( request.GET['lat'], request.GET['lon']) }, context_instance=RequestContext(request))