def get_item(self, item_id): try: item_resp = fetch('https://api.mercadolibre.com/items/%s' % item_id) item = anyjson.deserialize(item_resp.content) if item.has_key('site_id') and item.has_key('title'): i = Item() i.item_id = item_id i.site_id = item['site_id'] i.title = item['title'] i.subtitle = item['subtitle'] if item.has_key('subtitle') else '' if item.has_key('price'): i.currency_id = item['currency_id'] i.price = item['price'] i.base_price = item['price'] * Currency.objects.get(currency_id=item['currency_id']).usd_exchange_rate if item.has_key('thumbnail'): i.thumbnail = item['thumbnail'].replace('_I_', '_E_') if item.has_key('permalink'): i.permalink = item['permalink'] i.condition = item['condition'] if item.has_key('condition') else 'not_especified' i.buying_mode = item['buying_mode'] if item.has_key('buying_mode') else 'not_especified' i.sold_quantity = item['sold_quantity'] if item.has_key('sold_quantity') else 0 return i else: return None except Exception, e: print e return None
def post(self, req, *args, **kwargs): uForm = UploadForm(req.POST, req.FILES) #if uForm.is_valid(): item = Item() item.title = uForm.data["title"] item.description = uForm.data["description"] item.dimension = uForm.data["dimension"] item.author = uForm.data["author"] item.year = uForm.data["year"] item.type = uForm.data["type"] item.source = uForm.data["source"] item.style = uForm.data["style"] item.n_copies = uForm.data["n_copies"] item.created = uForm.data["created"] item.updated = uForm.data["updated"] user_id = uForm.data["user_id"] item.user = User.objects.get(id=user_id) folder = os.path.join('photos', item.user.username) file = req.FILES.get('file') fname = file.name fpath = os.path.join(settings.MEDIA_ROOT, folder) if not os.path.exists(fpath): os.makedirs(fpath) # save the uploaded file inside that folder. full_filename = os.path.join(fpath, fname) if not os.path.exists(full_filename): fout = open(full_filename, 'wb+') fout.write(file.read()) fout.close() item.fpath = os.path.join(folder, fname) item.save() else: return JsonResponse({'saved': False}, safe=False) return JsonResponse({'saved': True}, safe=False)
def add(request): user = request.session.get('user', None) if user != 'admin': request.session['referer'] = reverse('add') return redirect(reverse('admin_login')) if request.is_ajax(): form_title = request.POST.get("title", None) instructions = request.POST.get("instructions", None) logo = request.POST.get("logo", None) logo_file = request.FILES.get('logo-new-file', None) email = request.POST.get("email", None) gym = request.POST.get("gym", None) forSale = request.POST.get("for-sale", None) val = Validate() val.isEmpty(form_title, "Please enter Form Title.") val.isEmpty(instructions, "Please enter Form Instructions.") val.isEmpty(logo, "Please select Form Logo.") if logo == "new": val.isImage(logo_file, "New Logo Image") val.isEmail(email, "Please enter valid Customer Email.") val.isEmpty(gym, "Please enter Customer Gym.") items = [] if (forSale): for i in range(1, int(forSale)+1): order = i title = request.POST.get("item-title-"+str(i), None) price = request.POST.get("item-price-"+str(i), None) image = request.FILES.get('item-image-file-'+str(i), None) sizes = request.POST.get("item-sizes-"+str(i), None) val.isEmpty(title, "Please enter Item "+str(i)+" Title.") val.isInteger(price, "Please enter valid Item "+str(i)+" Price.") val.isImage(image, "Item "+str(i)+" Image") val.isEmpty(sizes, "Please enter Item "+str(i)+" Sizes.") item = Item() item.order = order item.title = title item.price = price item.image = image item.sizes = sizes item.form = None items.append(item) errors = val.getErrors() if errors: return JsonResponse(errors, safe=False) else: form = Form() form.title = form_title form.instructions = instructions form.logo = logo_file if logo_file else logo form.email = email form.gym = gym form.forSale = forSale form.save() for item in items: item.form = form item.save() return JsonResponse({"url": reverse('forms')}) else: files = [] bucket = get_bucket() source = "https://%s.s3.%s.amazonaws.com/" %(bucket.name, settings.AWS_S3_REGION_NAME) for obj in bucket.objects.filter(Prefix='logos'): files.append(obj.key) return render(request, 'forms/add.html', {'source': source, 'files': files})