def test_create_item_gets_modification_date(db, user): item = Item(user=user) old_modified = item.modified item.save() item = Item.objects.get(id=item.id) new_modified = item.modified delta = new_modified - old_modified assert delta.microseconds
def close_spider(self, spider): # print('day la') # print(self.variations) # return num_page = len(self.productItems) for page in range(num_page): num_item = len(self.productItems[page]['name']) for i in range(num_item): try: new_Item = Item() new_Item.title = self.productItems[page]['name'][i] new_Item.image = self.productItems[page]['images'][i][ 'path'] new_Item.category = self.productItems[page]['category'][i] new_Item.price = self.productItems[page]['price'][i] new_Item.slug = self.productItems[page]['slug'][i] new_Item.description = self.productItems[page][ 'description'][0] new_Item.label = self.productItems[page]['label'][0] new_Item.save() except Exception as e: print(e) pass num_variation = len(self.variations) for vari in range(num_variation): curr_vari = self.variations[vari] item = Item.objects.filter(title=curr_vari['itemName'][0]).first() if (item != None): if (item.description == ""): item.description = curr_vari['description'][0] item.save() try: num_variationValue = len(curr_vari['value']) new_variation = Variation() new_variation.item = item new_variation.name = curr_vari['variation'][0] new_variation.save() except Exception as e: print(e) pass variation = Variation.objects.filter( item=item, name=curr_vari['variation'][0]).first() for j in range(num_variationValue): try: new_variationValue = ItemVariation() new_variationValue.variation = variation new_variationValue.value = curr_vari['value'][j] new_variationValue.attachment = curr_vari['images'][j][ 'path'] if (len(curr_vari['images']) - 1) >= j else '' new_variationValue.save() except Exception as e: print(e) pass
def item_registration(request): if request.method == 'POST': try: uid = request.POST.get('uniqueid') title = request.POST.get('title') category = request.POST.get('category') description = request.POST.get('description') tags = request.POST.get('tags') location = request.POST.get('location') photos = json.loads(request.POST['media']) new_item = Item() new_item.title = title new_item.unique_id = uid new_item.tags = tags new_item.description = description new_item.location = request.POST.get('location') new_item.category = category new_item.date_field = datetime.datetime.now().strftime("%Y-%m-%d") new_item.time_field = datetime.datetime.now().strftime("%H:%M:%S") new_item.found_by_user = request.user new_item.save() for media in photos: photo = Media() photo.of_item = new_item photo.media_type = "PHOTO" save_base64image_to_media(photo, media) photo.save() call_command('update_index') return HttpResponse(json.dumps({ 'result': 'OK', 'pk': new_item.pk }), content_type="application/json") except Exception as e: traceback.print_exc() return HttpResponse(json.dumps({'result': 'ERROR'}), content_type="application/json") context = RequestContext(request, { 'request': request, 'user': request.user }) return render_to_response('public/registerfounditem.html', context_instance=context)
def products(request): """ Returns last 10 items ordered by price """ if request.method == 'POST': try: item = Item(dbid = request.POST['dbid'], price = float(request.POST.get('price', 0)), delivery = request.POST['delivery'], kid_adult = bool(int(request.POST.get('kid_adult', 0))), kids = bool(int(request.POST.get('kids', 0))), women = bool(int(request.POST.get('women', 0))), name = request.POST['name'], sizes = request.POST['sizes'], url = request.POST['url'], free_porto = bool(int(request.POST.get('free_porto', 0))), package = bool(int(request.POST.get('package', 0))), price_old = float(request.POST.get('price_old', 0)), img_url = request.POST['img_url'] ) item.save() return HttpResponse("Item created.", status=201) except MultiValueDictKeyError: return HttpResponse("Some fields are missing from POST parameters.", status=500) # Get items and create paginator items_ = Item.objects.order_by('price') p = Paginator(items_, 10) page = request.GET.get('page') try: items = p.page(page) except PageNotAnInteger: # Deliver first page, if page is not an integer or does not specified items = p.page(1) # Prepare items for JSON serialization. data = [] for item in items: i_ = {} for field in Item._meta.fields: i_[field.name] = getattr(item, field.name) data.append(i_) return HttpResponse(json.dumps(data), content_type='application/json')
def item_registration(request): if request.method=='POST': try: uid = request.POST.get('uniqueid') title = request.POST.get('title') category = request.POST.get('category') description = request.POST.get('description') tags = request.POST.get('tags') location = request.POST.get('location') photos = json.loads(request.POST['media']) new_item = Item() new_item.title = title new_item.unique_id = uid new_item.tags = tags new_item.description = description new_item.location = request.POST.get('location') new_item.category = category new_item.date_field = datetime.datetime.now().strftime("%Y-%m-%d") new_item.time_field = datetime.datetime.now().strftime("%H:%M:%S") new_item.found_by_user = request.user new_item.save() for media in photos: photo = Media() photo.of_item = new_item photo.media_type = "PHOTO" save_base64image_to_media(photo, media) photo.save() call_command('update_index') return HttpResponse(json.dumps({'result': 'OK', 'pk':new_item.pk}), content_type="application/json") except Exception as e: traceback.print_exc() return HttpResponse(json.dumps({'result': 'ERROR'}), content_type="application/json") context = RequestContext(request, {'request': request, 'user': request.user }) return render_to_response('public/registerfounditem.html', context_instance=context)
def handle(self, *args, **options): url = 'http://www.unisport.dk/api/sample/' # Read items from URL logging.info('Reading data...') request = urllib2.urlopen(url) items_str = request.read() items = ast.literal_eval(items_str)['latest'] logging.info('Data evaluated.') logging.info('Now importing...') # Go through items for item_ in items: try: # Create item and save into Db item = Item() item.dbid = item_['id'] item.price = float(item_['price'].replace(',','.')) item.delivery = item_['delivery'] item.kid_adult = int(item_['kid_adult']) item.kids = int(item_['kids']) item.women = int(item_['women']) item.name = item_['name'].decode('unicode_escape') item.sizes = item_['sizes'] item.url = item_['url'] item.free_porto = int(item_['free_porto']) item.package = item_['package'] item.price_old = float(item_['price_old'].replace(',','.')) item.img_url = item_['img_url'] item.save() logging.info('Imported item %s' % item.dbid) except: logging.error('Failed to import %s' % item_['dbid']) # All done logging.info('All imported')
def pull_vinted_products(): # sleep(10) creds = { 'login': settings.VINTED_LOGIN, 'password': settings.VINTED_PASSWORD } session = Vinted(creds=creds) session.login().content.decode('utf-8') friend_id = '12813951' # '36544471' print("Getting items for ", friend_id) i_member_info, i_all_items = session.get_items4member(friend_id) print("Got items from vinted", i_all_items) for item in i_all_items: an_item = Item() an_item.id = int(item["id"]) an_item.title = item["title"] an_item.price = float(item["price_numeric"]) an_item.discount_price = float(item["price_numeric"]) an_item.category = 'OW' an_item.label = "P" an_item.slug = slugify("{}{}".format(an_item.title, an_item.id)) url = item["photos"][0]['full_size_url'] img_filename = "{}.jpg".format(an_item.id) # (uuid.uuid4().hex) img_temp = NamedTemporaryFile(delete=True) img_temp.write(urlopen(url).read()) img_temp.flush() an_item.image.save(img_filename, File(img_temp)) an_item.save() print("Item {} processed.".format(an_item.title)) return None
def _create_items(self): call_command('migrate', 'auth') sys.stdout.write("\n==========Auth App Migrated===========\n") call_command('migrate') sys.stdout.write("\n==========Other Apps Migrated===========\n") call_command('syncdb', interactive=True) Item.objects.all().delete() CustomUser.objects.all().delete() CustomUser.objects.create_superuser(username='******', password='******', email='*****@*****.**') user1 = CustomUser() user1.username = "******" user1.first_name = "Nikolaus" user1.last_name = "Mickaelson" user1.email = "*****@*****.**" user1.prefered_way_of_contact = "IBF" user1.phone_number = "12345673" user1.set_password('nick') user1.save() user2 = CustomUser() user2.username = "******" user2.first_name = "Mark" user2.last_name = "Johnson" user2.email = "*****@*****.**" user2.prefered_way_of_contact = "PHONE" user2.phone_number = "122456141" user2.set_password("mark") user2.save() pitem = PreRegisteredItem() pitem.unique_id = '' pitem.title = "Green Adidas Bag " pitem.tags = "Bag" pitem.description = 'Green Bag lost near Southampton' pitem.location = "Southampton" pitem.category = "Bag" pitem.owner = CustomUser.objects.filter(username='******')[0] pitem.lost = True pitem.save() photo = Media() photo.of_item = pitem photo.media_type = "PHOTO" save_url_to_image(photo, 'http://www.fashionvortex.com/image/cache/data/Medici/MF-2475-Gr-a-600x600.jpg') photo.save() tphone = Item() tphone.unique_id = '123456789' tphone.title = "Black Samsung Galaxy S6 34GB" tphone.tags = "Black Samsung Galaxy S6 34GB" tphone.description = 'Black Samsung Galaxy S6 found in Stile' tphone.location = "Southampton" tphone.category = "Electronics" tphone.date_field = "2015-09-15" tphone.time_field = "14:33::22" tphone.found_by_user = user1 tphone.save() tbag = Item() tbag.description = 'Green bag found on the poll edge at "Summer Time"' tbag.title = "Bag Green" tbag.tags = "Bag Green" tbag.location = "london" tbag.category = "Bag" tbag.date_field = "2016-09-09" tbag.time_field = "10:33::22" tbag.found_by_user = user1 tbag.save() photo = Media() photo.of_item = tbag photo.media_type = "PHOTO" save_url_to_image(photo, 'http://www.suggestcamera.com/wp-content/uploads/2015/08/81K-jtyW82L._SL1500_.jpg') photo.save() tbag = Item() tbag.description = 'Green bag found on the poll edge at "Summer Time"' tbag.title = "Big Bag" tbag.tags = "Bag" tbag.location = "london" tbag.category = "Bag" tbag.date_field = "2016-09-09" tbag.time_field = "10:33::22" tbag.found_by_user = user1 tbag.save() photo = Media() photo.of_item = tbag photo.media_type = "PHOTO" save_url_to_image(photo, 'http://i.dailymail.co.uk/i/pix/2013/11/13/article-2505060-0B22502B000005DC-342_634x422.jpg') photo.save() tLeptop = Item() tLeptop.unique_id = '098765432' tLeptop.description = '15 inch Dell found in Winchester"' tLeptop.title = "Dell Leptop Inspiron" tLeptop.tags = "Leptop Dell Black" tLeptop.location = "london" tLeptop.category = "Electronics" tLeptop.date_field = "2015-09-18" tLeptop.time_field = "10:33::22" tLeptop.found_by_user = user1 tLeptop.save() tLaptop = Item() tLaptop.unique_id = '123456788' tLaptop.description = 'Apple MacBook 15" found at Hartley Library' tLaptop.title = "Apple MacBook" tLaptop.tags = "Apple MacBook" tLaptop.location = "Southampton" tLaptop.category = "Electronics" tLaptop.date_field = "2015-11-16" tLaptop.time_field = "22:35::22" tLaptop.found_by_user = user1 tLaptop.save() photo = Media() photo.of_item = tLaptop photo.media_type = "PHOTO" save_url_to_image(photo, 'http://static.trustedreviews.com/94/9736c1/5242/15168-crw398s.jpg') photo.save() tIDCard = Item() tIDCard.unique_id = '123459876' tIDCard.description = 'Passport found outside Sprinkles' tIDCard.title = "UK EU e-passport" tIDCard.tags = "Passport UK EU e-passport" tIDCard.location = "Southampton" tIDCard.category = "ID/Cards" tIDCard.date_field = "2015-07-23" tIDCard.time_field = "12:07::22" tIDCard.found_by_user = user1 tIDCard.save() photo = Media() photo.of_item = tIDCard photo.media_type = "PHOTO" save_url_to_image(photo, 'http://i.telegraph.co.uk/multimedia/archive/01595/mp-passport-pa_1595880b.jpg') photo.save() tBook = Item() tBook.unique_id = '121212123' tBook.description = 'Dan Brown The Lost Symbol paperback edition' tBook.title = "The Lost Symbol Paperback" tBook.tags = "Dan Brown The Lost Symbol Paperback " tBook.location = "Bournemouth" tBook.category = "Books" tBook.date_field = "2015-09-30" tBook.time_field = "17:53:28" tBook.found_by_user = user2 tBook.save() photo = Media() photo.of_item = tBook photo.media_type = "PHOTO" save_url_to_image(photo, 'http://thumbs1.ebaystatic.com/d/l225/m/mIuB9Oannj3xR0YhYCIiEZg.jpg') photo.save() tScarf = Item() tScarf.unique_id = '666777888' tScarf.description = 'Grey Scarf with Dark Grey Stripes' tScarf.title = "Scarf" tScarf.tags = "Scarf Grey Dark Grey Stripes " tScarf.location = "Surrey" tScarf.category = "Clothes" tScarf.date_field = "2015-10-28" tScarf.time_field = "13:53:28" tScarf.found_by_user = user2 tScarf.save() photo = Media() photo.of_item = tScarf photo.media_type = "PHOTO" save_url_to_image(photo, 'http://assets3.howtospendit.ft-static.com/images/52/46/d7/5246d742-1619-46b4-83c8-9e9d726203da_three_eighty.png') photo.save() tNecklace = Item() tNecklace.unique_id = '898998989' tNecklace.title = 'Black Leather necklace' tNecklace.tags = 'Black Leather necklace' tNecklace.description = "leather necklace black men unisex" tNecklace.location = "Glasgow" tNecklace.category = "Accessories" tNecklace.date_field = "2015-11-28" tNecklace.time_field = "13:27:28" tNecklace.found_by_user = user2 tNecklace.save() photo = Media() photo.of_item = tNecklace photo.media_type = "PHOTO" save_url_to_image(photo, 'http://cdn.notonthehighstreet.com/system/product_images/images/001/615/301/original_mens-leather-necklace.jpg') photo.save() tHobbit = Item() tHobbit.unique_id = '454647489' tHobbit.title = 'J R R Tolkien -' tHobbit.tags = 'J R R Tolkien - The Hobbit Hard Cover' tHobbit.description = "tolkien hobbit the hobbit hardcover" tHobbit.location = "Eastleigh" tHobbit.category = "Books" tHobbit.date_field = "2015-10-30" tHobbit.time_field = "10:41:28" tHobbit.found_by_user = user2 tHobbit.save() photo = Media() photo.of_item = tHobbit photo.media_type = "PHOTO" save_url_to_image(photo, 'https://i.ytimg.com/vi/X75pnPtqhvE/maxresdefault.jpg') photo.save() tPlayer = Item() tPlayer.unique_id = '145897123' tPlayer.title = 'Sony Walkman MP4 Player Black' tPlayer.tags = 'Sony Walkman MP4 Player Black' tPlayer.description = "sony walkman mp4 player mp3 black " tPlayer.location = "London" tPlayer.category = "Electronics" tPlayer.date_field = "2015-10-30" tPlayer.time_field = "10:41:28" tPlayer.found_by_user = user2 tPlayer.save() photo = Media() photo.of_item = tPlayer photo.media_type = "PHOTO" save_url_to_image(photo, 'https://i.ytimg.com/vi/PI_nQ3MSSHI/maxresdefault.jpg') photo.save() tDog = Item() tDog.unique_id = '321654987' tDog.title = 'Chihuahua' tDog.tags = 'Lost Chihuahua found on Portswood Road' tDog.description = "chihuahua dog portswood southampton lost " tDog.location = "Southampton" tDog.category = "Animal" tDog.date_field = "2015-11-17" tDog.time_field = "22:41:28" tDog.found_by_user = user2 tDog.save() photo = Media() photo.of_item = tDog photo.media_type = "PHOTO" save_url_to_image(photo, 'https://canophilia.files.wordpress.com/2014/04/chihuahua_4.jpg') photo.save() tHobbit = Item() tHobbit.unique_id = '125678991' tHobbit.title = 'Adele - Rolling in the Deep' tHobbit.tags = 'Adele - Rolling in the Deep CD Album' tHobbit.description = "adele rolling in the deep cd album" tHobbit.location = "Manchester" tHobbit.category = "Other" tHobbit.date_field = "2015-09-27" tHobbit.time_field = "13:44:28" tHobbit.found_by_user = user2 tHobbit.save() photo = Media() photo.of_item = tHobbit photo.media_type = "PHOTO" save_url_to_image(photo, 'http://thumbs2.ebaystatic.com/d/l225/m/mQTzqU9kSL8uIcBHIkfwOqA.jpg') photo.save() tMug = Item() tMug.unique_id = '123654897' tMug.description = 'Found this mug at the Solent Library, 2nd Level' tMug.title = "Mug" tMug.tags = "mug white solent southampton" tMug.location = "Southampton" tMug.category = "Other" tMug.date_field = "2015-10-06" tMug.time_field = "09:13:28" tMug.found_by_user = user2 tMug.save() photo = Media() photo.of_item = tMug photo.media_type = "PHOTO" save_url_to_image(photo, 'https://s-media-cache-ak0.pinimg.com/736x/7c/01/a9/7c01a9440c8e8afde4b11ab4acbfcd3d.jpg') photo.save() sys.stdout.write("\n==========Database Re-populated===========\n") call_command('rebuild_index')
def AddNewItem(request, slug): if request.user.is_anonymous(): ItemOwner = request.POST.get('ItemOwner') ItemOwnerState = "non-confirmed" ItemOwnerAvtr = "" ItemOwnerPrvdr = "" ItemOwnerFN = "" ItemOwnerLN = "" ItemOwnerLink = "" else: for account in request.user.socialaccount_set.all(): ItemOwnerPrvdr = account.provider if ItemOwnerPrvdr == "facebook": ItemOwner = account.extra_data['username'] ItemOwnerFN = account.extra_data['first_name'] ItemOwnerLN = account.extra_data['last_name'] ItemOwnerLink = account.extra_data['link'] ItemOwnerState = "confirmed" ItemOwnerAvtr = "https://graph.facebook.com/" + account.extra_data[ 'id'] + "/picture?type=large" elif ItemOwnerPrvdr == "twitter": ItemOwner = account.extra_data['screen_name'] ItemOwnerFN = account.extra_data['name'] ItemOwnerLN = "" ItemOwnerLink = "https://twitter.com/" + account.extra_data[ 'screen_name'] ItemOwnerState = "confirmed" ItemOwnerAvtr = account.extra_data['profile_image_url_https'] elif ItemOwnerPrvdr == "google": ItemOwner = account.extra_data['name'] ItemOwnerFN = account.extra_data['id'] ItemOwnerLN = "" ItemOwnerLink = "https://plus.google.com/" + account.extra_data[ 'id'] ItemOwnerState = "confirmed" ItemOwnerAvtr = account.extra_data['picture'] elif ItemOwnerPrvdr == "persona": ItemOwner = account.user ItemOwnerFN = account.user ItemOwnerLN = "" ItemOwnerLink = "mailto:" + account.extra_data['email'] ItemOwnerState = "confirmed" ItemOwnerAvtr = "/static/buttons/Persona.png" else: pass content = request.POST['content'] ItemDone = False WhoDone = "" TimeDone = timezone.now() list = get_object_or_404(List, slug=slug) p = Item( list=list, ItemOwner=ItemOwner, ItemOwnerFN=ItemOwnerFN, ItemOwnerLN=ItemOwnerLN, ItemOwnerPrvdr=ItemOwnerPrvdr, ItemOwnerLink=ItemOwnerLink, content=content, ItemOwnerAvtr=ItemOwnerAvtr, ItemOwnerState=ItemOwnerState, TimeDone=TimeDone, WhoDone=WhoDone, ItemDone=ItemDone, ) p.save() return HttpResponseRedirect(reverse('sopler:list', args=(list.slug, )))
def AddNewItem(request, slug): if request.user.is_anonymous(): ItemOwner = request.POST.get('ItemOwner') ItemOwnerState = "non-confirmed" ItemOwnerAvtr = "" ItemOwnerPrvdr = "" ItemOwnerFN = "" ItemOwnerLN = "" ItemOwnerLink = "" else: for account in request.user.socialaccount_set.all(): ItemOwnerPrvdr = account.provider if ItemOwnerPrvdr == "facebook": ItemOwner = account.extra_data['username'] ItemOwnerFN = account.extra_data['first_name'] ItemOwnerLN = account.extra_data['last_name'] ItemOwnerLink = account.extra_data['link'] ItemOwnerState = "confirmed" ItemOwnerAvtr = "https://graph.facebook.com/" + account.extra_data['id'] + "/picture?type=large" elif ItemOwnerPrvdr == "twitter": ItemOwner = account.extra_data['screen_name'] ItemOwnerFN = account.extra_data['name'] ItemOwnerLN = "" ItemOwnerLink = "https://twitter.com/" + account.extra_data['screen_name'] ItemOwnerState = "confirmed" ItemOwnerAvtr = account.extra_data['profile_image_url_https'] elif ItemOwnerPrvdr == "google": ItemOwner = account.extra_data['name'] ItemOwnerFN = account.extra_data['id'] ItemOwnerLN = "" ItemOwnerLink = "https://plus.google.com/" + account.extra_data['id'] ItemOwnerState = "confirmed" ItemOwnerAvtr = account.extra_data['picture'] elif ItemOwnerPrvdr == "persona": ItemOwner = account.user ItemOwnerFN = account.user ItemOwnerLN = "" ItemOwnerLink = "mailto:"+account.extra_data['email'] ItemOwnerState = "confirmed" ItemOwnerAvtr = "/static/buttons/Persona.png" else: pass content = request.POST['content'] ItemDone = False WhoDone = "" TimeDone = timezone.now() list = get_object_or_404(List, slug=slug) p = Item( list=list, ItemOwner=ItemOwner, ItemOwnerFN = ItemOwnerFN, ItemOwnerLN = ItemOwnerLN, ItemOwnerPrvdr = ItemOwnerPrvdr, ItemOwnerLink = ItemOwnerLink, content = content, ItemOwnerAvtr = ItemOwnerAvtr, ItemOwnerState = ItemOwnerState, TimeDone = TimeDone, WhoDone = WhoDone, ItemDone=ItemDone, ) p.save() return HttpResponseRedirect(reverse('sopler:list', args=(list.slug,)))
def test_create_item_without_user(db): item = Item() item.save()
def test_create_item_with_image(db, user): img = open('testsuite/test.png', 'rb') item = Item(user=user, image=File(img)) item.save() assert item.image
def test_create_item_with_user(db, user): item = Item( user=user, title="title#1", description="description number #1" ) item.save()
def handle(self, *args, **options): printful_api_base = 'https://api.printful.com/' key_bytes = settings.PRINTFUL_KEY.encode('utf-8') b64Val = base64.b64encode(key_bytes) key_decoded = b64Val.decode('utf-8') headers = { 'content-type': 'application/json', 'Authorization': "Basic %s" %key_decoded } url = printful_api_base + "store/products" response = requests.get(url, headers=headers) data = response.json()['result'] print("data: ", data) print("data length: ", len(data)) count = 1 for item in data: url = printful_api_base + "store/products" print("COUNT: ", count) print("item: ", item) item_id = item["id"] print("item_id: ", item_id) url = url + "/" + str(item_id) print("URL: ", url) response = requests.get(url, headers=headers) variant_data = response.json()["result"] sync_product = variant_data['sync_product'] print("sync_product: ", sync_product) new_item = Item( title = sync_product["name"], # price = models.DecimalField(blank=True, null=True, max_digits=10, decimal_places=2) # discount_price = models.DecimalField(blank=True, null=True, max_digits=10, decimal_places=2) # category = models.CharField(choices=CATEGORY_CHOICES, max_length=2, blank=True, null=True) # label = models.CharField(choices=LABEL_CHOICES, max_length=1, blank=True, null=True) # slug = models.SlugField(blank=True, null=True) # description = models.TextField(blank=True, null=True) # image = models.ImageField(blank=True, null=True) printful_product_id = sync_product["id"], thumbnail_url = sync_product["thumbnail_url"], printful_name = sync_product["name"], ) new_item.save() for variant in variant_data["sync_variants"]: print("variant: ", variant) new_item_variant = ItemVariant( title = variant["name"], item = new_item, printful_variant_id = variant["variant_id"], printful_item_variant_id = variant["id"], retail_price = variant["retail_price"], sku = variant["sku"], product_id = variant["id"], ) new_item_variant.save() print_file in variant["files"]: new_item_variant_file = ItemVariantFiles( file_id = print_file["id"], item_variant = new_item_variant, url = , file_name = ) new_item_variant_file.save() count += 1