Esempio n. 1
0
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))
Esempio n. 2
0
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))    
Esempio n. 3
0
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))    
Esempio n. 4
0
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))
Esempio n. 5
0
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))
Esempio n. 6
0
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))