def listing(request, shard_id, list_id): print(shard_id) listing_query = ListingOwned.objects set_user_for_sharding(listing_query, shard_id) listing = listing_query.get(pk=list_id) return render(request, 'app/listing.html', {'listing': listing})
def apartment(request, shard_id, apt_id): print(shard_id) apt_query = ApartmentOwned.objects set_user_for_sharding(apt_query, shard_id) apartment = apt_query.get(pk=apt_id) return render(request, 'app/apartment.html', {'apartment': apartment})
def book(request): if request.method == 'POST': listing_query = ListingOwned.objects set_user_for_sharding(listing_query, request.POST.get('shard_id')) l = listing_query.get(pk=request.POST.get('list_id')) print l if (not l.is_booked) and l.is_active: a = l.apartment user_pk = request.user.id user_query = SubletUser.objects set_user_for_sharding(user_query, user_pk) s_user = user_query.get(user_pk=user_pk) apartment_wanted = ApartmentWanted(user_pk=user_pk, street=a.street, city=a.city, state=a.state, zip=a.zip, user=s_user, sqFt=a.sqFt, year=a.year, min_from_subway=a.min_from_subway) apartment_wanted.save() listing_wanted = ListingWanted(user_pk=user_pk, title=l.title, price=l.price, duration=l.duration, apartment=apartment_wanted) listing_wanted.save() booking_placed = BookingPlaced(user_pk=user_pk, duration=listing_wanted.duration, listing=listing_wanted, user=s_user) booking_placed.save() l.is_booked = True l.is_active = False l.save() print s_user, s_user.user_pk print apartment_wanted, apartment_wanted.user_pk print listing_wanted, listing_wanted.user_pk print booking_placed, booking_placed.user_pk return JsonResponse({'success': 'success'}) else: return JsonResponse({'success': 'Listing already booked'}) # return redirect('/sublet/bookings') else: return render(request, 'app/listings.html')
def profile(request): user_query = SubletUser.objects set_user_for_sharding(user_query, request.user.id) user = user_query.get(user_pk=request.user.id) #find all my apts apt_query = ApartmentOwned.objects set_user_for_sharding(apt_query, request.user.id) my_apartments = apt_query.filter(user=user) print ("my apts:" , my_apartments) #find all my current open listing listing_query = ListingOwned.objects set_user_for_sharding(listing_query, request.user.id) open_listings = listing_query.filter(user_pk=request.user.id, is_booked = 0, is_active=1) print ("open_listings:" , open_listings) #find all my closed listing closed_listings = listing_query.filter(user_pk=request.user.id, is_booked = 1, is_active=0) print ("closed_listings:" , closed_listings) #find all my bookings bookings_query = BookingPlaced.objects set_user_for_sharding(bookings_query, request.user.id) my_bookings = bookings_query.filter(user=user) print ("my_bookings:" , my_bookings) return render(request, 'app/profile.html', {'s_user': user, 'apartments': my_apartments, 'open_listings': open_listings, 'closed_listings': closed_listings, 'bookings': my_bookings})
def editListing(request, shard_id, list_id): listing_query = ListingOwned.objects set_user_for_sharding(listing_query, shard_id) listing = listing_query.get(pk=list_id) print(shard_id) if request.method == 'POST': title = request.POST.get('title') price = request.POST.get('price') duration = request.POST.get('duration') listing.title = title listing.price = price listing.duration = duration listing.save() return redirect('/sublet/profile') else: apartment = listing.apartment print apartment json_apartment = [apartment.get_address(), apartment.sqFt, apartment.year, apartment.min_from_subway] return render(request, 'app/editlisting.html', {'apartment': apartment, 'json_apartment': json_apartment, 'listing': listing})
def addListing(request): if request.method == 'POST': title = request.POST.get('title') price = request.POST.get('price') duration = request.POST.get('duration') apartment_id = request.POST.get('apartment') user_query = ApartmentOwned.objects set_user_for_sharding(user_query, request.user.id) apartment = user_query.get(pk=apartment_id) new_listing = ListingOwned(user_pk=request.user.id, title=title, price=price, duration=duration, apartment=apartment) new_listing.save() return redirect('/sublet/listings/') else: user_query = SubletUser.objects set_user_for_sharding(user_query, request.user.id) user = user_query.get(user_pk=request.user.id) apt_query = ApartmentOwned.objects set_user_for_sharding(apt_query, request.user.id) apartments = apt_query.filter(user=user) json_apartments = [] for apartment in apartments: json_apartments.append([apartment.get_address(), apartment.sqFt, apartment.year, apartment.min_from_subway]) return render(request, 'app/addlisting.html', {'apartments': apartments, 'json_apartments': json_apartments})
def addApartment(request): if request.method == 'POST': street = request.POST.get('street') city = request.POST.get('city') state = request.POST.get('state') zip = request.POST.get('zip') user_query = SubletUser.objects set_user_for_sharding(user_query, request.user.id) user = user_query.get(user_pk=request.user.id) sqFt = float(request.POST.get('sqFt')) year = int(request.POST.get('year')) min_from_subway = int(request.POST.get('min')) apartment = ApartmentOwned(user_pk=request.user.id, street=street, city=city, state=state, zip=zip, user=user, sqFt=sqFt, year=year, min_from_subway=min_from_subway) apartment.save() return redirect('/sublet/apartments/') else: return render(request, 'app/addapartment.html')