Пример #1
0
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())
Пример #2
0
    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)
Пример #3
0
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')
Пример #4
0
    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)
Пример #5
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')
Пример #6
0
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')
Пример #7
0
 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)