def new( request ): category_error = None if request.method == "POST": pnt = fromstr("POINT(" + request.POST["lon"] + " " + request.POST["lat"] + ")", srid=4326) f = request.POST.copy() update_form = ReportUpdateForm( {'email':request.POST['email'], 'desc':request.POST['desc'], 'author':request.POST['author'], 'phone': request.POST['phone']}) report_form = ReportForm({'title' : request.POST['title']}, request.FILES ) # this is a lot more complicated than it has to be because of the infortmation # spread across two records. if request.POST['category_id'] != "" and update_form.is_valid() and report_form.is_valid(): report = report_form.save( commit = False ) report.point = pnt report.category_id = request.POST['category_id'] report.author = request.POST['author'] report.desc = request.POST['desc'] report.ward = Ward.objects.get(geom__contains=pnt) report.save() update = update_form.save(commit=False) update.report = report update.first_update = True update.created_at = report.created_at update.save() return( HttpResponseRedirect( report.get_absolute_url() )) # other form errors are handled by the form objects. if not request.POST['category_id']: category_error = _("Please select a category") else: pnt = fromstr("POINT(" + request.GET["lon"] + " " + request.GET["lat"] + ")", srid=4326) report_form = ReportForm() update_form = ReportUpdateForm() return render_to_response("reports/new.html", { "lat": pnt.y, "lon": pnt.x, "google": FixMyStreetMap(pnt, True), "categories": ReportCategory.objects.all().order_by("category_class"), "report_form": report_form, "update_form": update_form, "category_error" : category_error, }, context_instance=RequestContext(request))
def new( request, report_id ): report = get_object_or_404(Report, id=report_id) if request.method == 'POST': update_form = ReportUpdateForm( request.POST ) if update_form.is_valid(): update = update_form.save(commit=False) update.is_fixed = request.POST.has_key('is_fixed') update.report=report update.save() # redirect after a POST return( HttpResponseRedirect( '/reports/updates/create/' ) ) else: update_form = ReportUpdateForm() return render_to_response("reports/show.html", { "report": report, "google": FixMyStreetMap(report.point), "update_form": update_form, }, context_instance=RequestContext(request))
def new( request, report_id ): report = get_object_or_404(Report, id=report_id) if request.method == 'POST': update_form = ReportUpdateForm( request.POST, user=request.user, report=report ) if update_form.is_valid(): update = update_form.save() # redirect after a POST if update.is_confirmed: return( HttpResponseRedirect( report.get_absolute_url() ) ) else: return( HttpResponseRedirect( '/reports/updates/create/' ) ) else: update_form = ReportUpdateForm(initial={},user=request.user) return render_to_response("reports/show.html", { "report": report, "google": FixMyStreetMap(report.point), "update_form": update_form, }, context_instance=RequestContext(request))
def show(request, report_id): report = get_object_or_404(Report, id=report_id) subscribers = report.reportsubscriber_set.count() + 1 return render_to_response("reports/show.html", { "report": report, "subscribers": subscribers, "ward": report.ward, "updates": ReportUpdate.objects.filter( report=report, is_confirmed=True).order_by("created_at")[1:], "update_form": ReportUpdateForm(user=request.user, initial={}), "google": FixMyStreetMap((report.point)) }, context_instance=RequestContext(request))
def new(request, report_id): report = get_object_or_404(Report, id=report_id) if request.method == 'POST': update_form = ReportUpdateForm(request.POST, user=request.user, report=report) if update_form.is_valid(): update = update_form.save() # redirect after a POST if update.is_confirmed: return (HttpResponseRedirect(report.get_absolute_url())) else: return (HttpResponseRedirect('/reports/updates/create/')) else: update_form = ReportUpdateForm(initial={}, user=request.user) return render_to_response("reports/show.html", { "report": report, "google": FixMyStreetMap(report.point), "update_form": update_form, }, context_instance=RequestContext(request))
def new(request): form_error = category_error = title = street = author = email = phone = desc = pnt = city = None if request.method == "POST": POST = request.POST.copy() point_str = "POINT(" + POST['lon'] + " " + POST['lat'] + ")" pnt = fromstr(point_str, srid=4326) title = POST['title'] street = POST['street'] author = POST['author'] email = POST['email'] phone = POST['phone'] desc = POST['desc'] city = POST['city'] update_form = ReportUpdateForm({'email': email, 'desc': desc, 'author': author, 'phone': phone}, request.FILES) report_form = ReportForm({'title': title, 'street': street}, request.FILES) if update_form.is_valid and report_form.is_valid: pass else: HttpResponseRedirect('/') if request.POST.get('step') == '2': # this is a lot more complicated than it has to be because of the infortmation # spread across two records. if request.POST['category_id'] != "" and update_form.is_valid() and report_form.is_valid(): report = report_form.save(commit=False) report.point = pnt report.category_id = request.POST['category_id'] report.ip = utils.get_client_ip(request) report.author = request.POST['author'] report.desc = request.POST['desc'] report.ward = Ward.objects.get(geom__contains=pnt) report.save() update = update_form.save(commit=False) update.report = report update.ip = utils.get_client_ip(request) update.first_update = True update.created_at = report.created_at update.save() return HttpResponseRedirect(report.get_absolute_url()) # other form errors are handled by the form objects. if not request.POST['category_id']: category_error = _("Please select a category") else: return HttpResponseRedirect('/') return render_to_response("reports/new.html", {"lat": pnt.y, "lon": pnt.x, "city": city, "google": FixMyStreetMap(pnt, True), "title": title, "street": street, "author": author, "email": email, "phone": phone, "update_form": update_form, "report_form": report_form, "categories": ReportCategory.objects.all().order_by("category_class"), "category_error": category_error, "form_error": form_error}, context_instance=RequestContext(request))