def claim_listing(request): if request.method != 'POST': return redirect('data.views.buy_page') item = Item.get_item_by_id(request.POST['item_id']) get_current_user(request).add_claim(item) buyer = get_current_user(request) item = Item.get_item_by_id(request.POST['item_id']) item.seller_user.send_email(str(buyer) + ' wants to buy your ' + str(item) + '. Please contact your buyer at ' + buyer.email, '[Geddit] Buyer for ' + str(item)) get_params = QueryDict('', mutable=True) get_params['message'] = "Item Claimed. An email has been sent to the seller. Please wait for them to contact you to coordinate the transaction." return redirect(reverse('data.views.dashboard_page') + '?' + get_params.urlencode())
def test_claims(self): # check that the items are not claimed self.assertFalse(self.item1.claimed) self.assertFalse(self.item2.claimed) # create the claims self.claim1 = Claim.create_claim(self.buyer, self.item1) self.claim2 = self.buyer.add_claim(self.item2) # check that the items are claimed self.assertTrue(self.item1.claimed) self.assertTrue(self.item2.claimed) for claims in [Claim.get_claims(self.buyer), self.buyer.get_claims()]: self.assertIn(self.claim1, claims) self.assertIn(self.claim2, claims) self.assertEqual(Claim.get_claim(self.item1), self.claim1) self.assertEqual(Claim.get_claim(self.item1).buyer, self.buyer) # delete the second claim and verify that the item is not claimed self.buyer.remove_claim(self.item2) # refresh self.item2 self.item2 = Item.get_item_by_id(self.item2.id) self.assertFalse(self.item2.claimed) # add the claim back self.claim2 = self.buyer.add_claim(self.item2) self.assertTrue(self.item2.claimed) # delete the claims Claim.delete_claim(self.claim1) Claim.delete_claim(self.claim2)
def unclaim_listing(request): if request.method != 'POST': return redirect('data.views.dashboard_page') item = Item.get_item_by_id(request.POST['item_id']) try: get_current_user(request).remove_claim(item) except: # TODO(kxing): Log this. pass return redirect('data.views.dashboard_page')
def test_claim_item_remove(self): # create the item test_item = Item.create_item(self.seller, self.ITEM_1_NAME, \ self.ITEM_1_DESCRIPTION, self.category1, self.ITEM_1_PRICE) # check that the item is not claimed self.assertFalse(test_item.claimed) # create the claim claim = Claim.create_claim(self.buyer, test_item) # check that the item is claimed test_item = Item.get_item_by_id(test_item.id) self.assertTrue(test_item.claimed) # delete the item self.seller.remove_item(test_item) # check that there is no claim on the item self.assertEqual(len(self.buyer.get_claims()), 0)
def remove_item(request): if request.method != 'POST': return redirect('data.views.sell_page') item = Item.get_item_by_id(request.POST['item_id']) get_current_user(request).remove_item(item) return redirect('data.views.dashboard_page')
def unclaim_listing(request): if request.method != 'POST': return redirect('data.views.cart_page') item = Item.get_item_by_id(request.POST['item_id']) get_current_user(request).remove_claim(item) return redirect('data.views.cart_page')
def test_get_item_by_id(self): self.assertEqual(Item.get_item_by_id(self.textbook_3091_1.id), self.textbook_3091_1) self.assertEqual(Item.get_item_by_id(self.textbook_3091_2.id), self.textbook_3091_2) self.assertEqual(Item.get_item_by_id(self.video_5111.id), self.video_5111) self.assertEqual(Item.get_item_by_id(self.cheat_sheets.id), self.cheat_sheets)