def submitListing(request): if request.method == "POST": form = ListingForm(request.POST) if form.is_valid(): building = form.cleaned_data["building"] room = form.cleaned_data["room"] start_lease = form.cleaned_data["start_lease"] end_lease = form.cleaned_data["end_lease"] posters_email = form.cleaned_data["posters_email"] price = form.cleaned_data["price"] negotiable = form.cleaned_data["negotiable"] description = form.cleaned_data["description"] l = Listing( building=building, room=room, start_lease=start_lease, end_lease=end_lease, posters_email=posters_email, price=price, negotiable=negotiable, description=description, ) l.save() template = loader.get_template("submitAfter.html") dict = {"listingID": l.id, "listing": l} c = RequestContext(request, dict) return HttpResponse(template.render(c)) else: form = ListingForm() return render(request, "submit.html", {"form": form})
def create_listing(request): """ Loads the page for the users to post a new listing (either sale items or wanted items) and when a new listing is submitted, it is saved in the database """ if request.user.is_authenticated(): logtext = "Logout" accounttext = "My Account" welcometext = request.user.username logparams = [logtext, accounttext, welcometext] else: logtext = "Login" accounttext = "Sign Up" logparams = [logtext, accounttext] submit_action = URL_PATHS.get("listing_new") # create a new upload form that will be rendered to page pictureform = UploadForm() if request.method == "GET": if request.user.is_authenticated(): city = UserProfile.objects.get(username=request.user.email) form = ListingForm( instance=Listing(), initial={"creator": request.user.email, "email_verification": request.user.email, "city": city}, ) form.fields["creator"].widget = forms.HiddenInput() form.fields["email_verification"].widget = forms.HiddenInput() else: form = ListingForm(instance=Listing()) form_args = {"form": form, "submit_action": submit_action, "pictureform": pictureform, "logparams": logparams} return render_to_response( TEMPLATE_PATHS.get("listings_new"), form_args, context_instance=RequestContext(request) ) if request.method == "POST": pictureform = UploadForm(request.POST, request.FILES) listing_form = ListingForm(request.POST) form_args = {} if request.user.is_authenticated(): listing_form.fields["creator"].widget = forms.HiddenInput() listing_form.fields["email_verification"].widget = forms.HiddenInput() # if the listing form is valid and the listing has not yet been created if listing_form.is_valid() and request.POST.get("notnewlisting") == None: listing = listing_form.save(commit=False) # if user is logged in, then verify post if request.user.is_authenticated(): listing.verified = True listing.set_url(tag_maker("_", listing)) listing_url = listing.url listing_url = HttpRequest.build_absolute_uri(request, listing_url) listing.save() listingid = listing.id logger.debug("format", "createListing: debug") if request.POST.get("notnewlisting") != None: listingid = request.POST.get("listingid") listing = Listing.objects.get(id=listingid) listing_url = listing.get_url() form_args = { "form": listing_form, "submit_action": submit_action, "listing_url": listing_url, "listing": listing, "logparams": logparams, } # if the picture form is valid, save the picture if pictureform.is_valid(): form_args = {"listing": listing, "listing_url": listing_url, "logparams": logparams} photo = Photo(photo=request.FILES["picture"], listing=listing) photo.save() # if user wants to add another picture if request.POST.get("pictureform") == "1" and request.POST.get("issubmit") != 1: photolist = Photo.objects.filter(listing_id=listing.id) addanotherprevious = list() # get all the names of the previously added pictures for o in Photo.objects.filter(listing_id=listing.id): addanotherprevious.append(o.photo.name) form_args = { "form": listing_form, "submit_action": submit_action, "pictureform": pictureform, "listingid": listingid, "addanotherprevious": addanotherprevious, "logparams": logparams, } return render_to_response( "listings/listings_new.html", form_args, context_instance=RequestContext(request) ) # ==================================================================== # Testing purposes only - this just creates x # of listings # whenever a single one is created from the web, just used to # populate db for testing purposes # ==================================================================== # multiple_entries_for_testing(10000) if listing.verified: # if post is already verified, redirect user to their newly created post) return redirect("/listings/" + listing.url, context_instance=RequestContext(request)) # create a verification/edit link and send with mailer then direct to success message page user_email = listing.get_creator() verify_url = "%s%s?listing_id=%s&uuid=%s" % ( Site.objects.get_current(), URL_PATHS.get("listings_edit-verify"), listing.id, listing.get_uuid(), ) send_post_verification_email(verify_url, user_email, "list") return render_to_response( TEMPLATE_PATHS.get("listings_success"), form_args, context_instance=RequestContext(request) ) raise Http404
def create_listing(request): ''' Loads the page for the users to post a new listing (either sale items or wanted items) and when a new listing is submitted, it is saved in the database ''' if request.user.is_authenticated(): logtext = "Logout" accounttext = "My Account" welcometext = request.user.username logparams = [logtext, accounttext, welcometext] else: logtext = "Login" accounttext = "Sign Up" logparams = [logtext, accounttext] submit_action = URL_PATHS.get('listing_new') #create a new upload form that will be rendered to page pictureform = UploadForm() if request.method == 'GET': if request.user.is_authenticated(): city = UserProfile.objects.get(username=request.user.email) form = ListingForm(instance=Listing(), initial={ 'creator': request.user.email, 'email_verification': request.user.email, 'city': city }) form.fields['creator'].widget = forms.HiddenInput() form.fields['email_verification'].widget = forms.HiddenInput() else: form = ListingForm(instance=Listing()) form_args = { 'form': form, 'submit_action': submit_action, 'pictureform': pictureform, 'logparams': logparams } return render_to_response(TEMPLATE_PATHS.get('listings_new'), form_args, context_instance=RequestContext(request)) if request.method == 'POST': pictureform = UploadForm(request.POST, request.FILES) listing_form = ListingForm(request.POST) form_args = {} if request.user.is_authenticated(): listing_form.fields['creator'].widget = forms.HiddenInput() listing_form.fields[ 'email_verification'].widget = forms.HiddenInput() #if the listing form is valid and the listing has not yet been created if listing_form.is_valid() and request.POST.get( "notnewlisting") == None: listing = listing_form.save(commit=False) #if user is logged in, then verify post if request.user.is_authenticated(): listing.verified = True listing.set_url(tag_maker("_", listing)) listing_url = listing.url listing_url = HttpRequest.build_absolute_uri(request, listing_url) listing.save() listingid = listing.id logger.debug('format', "createListing: debug") if request.POST.get("notnewlisting") != None: listingid = request.POST.get("listingid") listing = Listing.objects.get(id=listingid) listing_url = listing.get_url() form_args = { 'form': listing_form, 'submit_action': submit_action, 'listing_url': listing_url, 'listing': listing, 'logparams': logparams } # if the picture form is valid, save the picture if pictureform.is_valid(): form_args = { 'listing': listing, 'listing_url': listing_url, 'logparams': logparams } photo = Photo(photo=request.FILES['picture'], listing=listing) photo.save() #if user wants to add another picture if request.POST.get('pictureform' ) == "1" and request.POST.get("issubmit") != 1: photolist = Photo.objects.filter(listing_id=listing.id) addanotherprevious = list() #get all the names of the previously added pictures for o in Photo.objects.filter(listing_id=listing.id): addanotherprevious.append(o.photo.name) form_args = { 'form': listing_form, 'submit_action': submit_action, 'pictureform': pictureform, 'listingid': listingid, 'addanotherprevious': addanotherprevious, 'logparams': logparams } return render_to_response( "listings/listings_new.html", form_args, context_instance=RequestContext(request)) #==================================================================== # Testing purposes only - this just creates x # of listings # whenever a single one is created from the web, just used to # populate db for testing purposes #==================================================================== #multiple_entries_for_testing(10000) if listing.verified: # if post is already verified, redirect user to their newly created post) return redirect("/listings/" + listing.url, context_instance=RequestContext(request)) # create a verification/edit link and send with mailer then direct to success message page user_email = listing.get_creator() verify_url = '%s%s?listing_id=%s&uuid=%s' % ( Site.objects.get_current(), URL_PATHS.get('listings_edit-verify'), listing.id, listing.get_uuid()) send_post_verification_email(verify_url, user_email, 'list') return render_to_response(TEMPLATE_PATHS.get('listings_success'), form_args, context_instance=RequestContext(request)) raise Http404