def publish(request): if request.method == 'GET': return render(request, 'publish.html') elif request.method == 'POST': app_name = request.POST['app_name'] description = request.POST['description'] app_link = request.POST['app_link'] try: app_icon = request.FILES['app_icon'] screen_shot = request.FILES['app_screen_shot'] product = Product() product.app_name = app_name product.description = description product.app_link = app_link product.app_icon = app_icon product.screen_shot = screen_shot product.publish_date = timezone.datetime.now() product.hunter = request.user product.save() return redirect('home') except Exception as err: return render(request, 'publish.html', {'image_error': 'Please upload images.'})
def create(self, validated_data): obj = Discount.objects.create(**validated_data) obj.save() if Product.objects.filter( id=obj.discount_related_parent_id).count() > 0: related_product_instance = Product.objects.filter( id=obj.discount_related_parent_id)[0] if Product.objects.filter( related_parent=obj.discount_related_parent, is_new=True, delete_flag=False).count() == 0: product_instance = Product.objects.filter( id=obj.discount_related_parent_id)[0] product_update_instance = Product() product_update_instance.title = product_instance.title product_update_instance.description = product_instance.description product_update_instance.brand = product_instance.brand product_update_instance.product_related_store = product_instance.product_related_store product_update_instance.product_related_category = product_instance.product_related_category product_update_instance.related_parent = product_instance product_update_instance.product_related_user = related_product_instance.product_related_user product_update_instance.made_in_iran = True product_update_instance.is_new = True product_update_instance.save() return obj
def post(self, request): productForm = ProductForm(request.POST) if productForm.is_valid(): # form = productForm.save(commit=False) # form.shop = request.user.shop # form.product_code = product_code_format(request.user.shop.id) # form.save() product = Product() product.shop = request.user.shop product.product_code = product_code_format(request.user.shop.id) product.category = productForm.cleaned_data.get('category') product.brand = productForm.cleaned_data.get('brand') product.product_name = productForm.cleaned_data.get('product_name') product.subTitle = productForm.cleaned_data.get('subTitle') product.original_price = productForm.cleaned_data.get( 'original_price') product.price = productForm.cleaned_data.get('price') product.cost = productForm.cleaned_data.get('cost') product.publish_status = productForm.cleaned_data.get( 'publish_status') product.description = productForm.cleaned_data.get('description') product.is_freeShipping = productForm.cleaned_data.get( 'is_freeShipping') product.save() # modelform保存后获取model? for pimage in request.FILES.getlist('pimage'): image = ProductImage(product=product, image=pimage, type='image') image.save() for dimage in request.FILES.getlist('dimage'): image = ProductImage(product=product, image=dimage, type='detailImage') image.save() for property in product.category.propertys.all(): propertyValue = Propertyvalue() propertyValue.property = property propertyValue.product = product propertyValue.value = '' propertyValue.save() return render(request, 'salers/amz/propertysForm.html', {'product': product}) else: print(productForm.errors) return render(request, 'salers/amz/product-add.html', {"productForm": productForm})
def ListProductsHistory(request, pk): context = {} prod_obj = get_object_or_404(Product, pk=pk) api = ApiDomains() url = api.product + "/" + "history" #url = 'https://94q78vev60.execute-api.us-east-1.amazonaws.com/Prod/intellidataProductAPI/history' payload = {'ident': prod_obj.productid} resp = requests.get(url, params=payload) print(resp.status_code) obj = get_object_or_404(APICodes, http_response_code=resp.status_code) status_message = obj.http_response_message mesg = str(resp.status_code) + " - " + status_message if resp.status_code != 200: # This means something went wrong. #raise ApiError('GET /tasks/ {}'.format(resp.status_code)) #raise APIError(resp.status_code) message = {'messages': mesg} return render(request, "messages.html", context=message) else: json_data = [] dict_data = [] obj_data = [] json_data = resp.json() #print(json_data[0]) #print(json_data[1]) for ix in range(len(json_data)): obj = Product() #dict_data.append(json.loads(json_data[ix])) obj.pk = int(json_data[ix]["LOCAL_ID"]) obj.productid = json_data[ix]["PRODUCT_ID"] obj.name = json_data[ix]["NAME"] obj.type = json_data[ix]["TYPE"] obj.coverage_limit = json_data[ix]["COVERAGE_LIMIT"] obj.price_per_1000_units = json_data[ix]["RATE"] obj.product_date = json_data[ix]["CREATE_DATE"] obj.description = json_data[ix]["DESCRIPTION"] obj.description_html = misaka.html(obj.description) #obj.photo = json_data[ix]["PHOTO"] obj.creator = User.objects.get(pk=int(json_data[ix]["CREATOR"])) obj.create_date = json_data[ix]["CREATE_DATE"] obj.backend_SOR_connection = json_data[ix]["CONNECTION"] obj.response = json_data[ix]["RESPONSE"] obj.record_status = json_data[ix]["RECORD_STATUS"] obj.commit_indicator = json_data[ix]["COMMIT_INDICATOR"] obj_data.append(obj) context = {'object_list': obj_data} return render(request, "products/product_list.html", context=context)
def generate_products(request, times): for i in range(0, times): p = Product() p.title = random_text('t', 80) p.resume = random_text('t', 500) p.description = random_text('t') p.price = round(100 * random.random(), 2) #p.category = get_random_instance(ProductCategory) p.save() return HttpResponse(f'{times} Products created !')
def ProductList(request): if request.method == 'GET': contacts = Product.objects.all() serializer = ProductSerializer(contacts, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = ProductSerializer(data=request.data) serializer.is_valid(raise_exception=True) product = Product() event = Event() if serializer.data["productid"] == '': product.productid = str(uuid.uuid4())[26:36] event.EventTypeReason = "New product received via API" else: product.productid = serializer.data["productid"] event.EventTypeReason = "Product added via API" product.name = serializer.data["name"] product.slug = slugify(product.name), product.description = serializer.data["description"] product.description_html = misaka.html(product.description), product.coverage_limit = serializer.data["coverage_limit"] product.price_per_1000_units = serializer.data["price_per_1000_units"] product.source = "Post API" product.creator = get_object_or_404(User, pk=serializer.data["creator"]) product.backend_SOR_connection = "Disconnected" product.response = "" product.commit_indicator = "Not Committed" product.record_status = "" product.bulk_upload_indicator = "Y" #Log events event.EventTypeCode = "PRW" event.EventSubjectId = product.productid event.EventSubjectName = product.name event.source = "Post API" event.creator = product.creator event.save() product.save() return Response(serializer.data)
def saveProductData(request, productForm): product = Product() product.name = productForm.cleaned_data['name'] product.description = productForm.cleaned_data['description'] product.q_amount = productForm.cleaned_data['q_amount'] user = request.user product.id_owner = user product.start_datetime = str(datetime.now()) product.end_datetime = str(datetime.now()) product.follower_qty = 0 product.visit_qty = 0 product.img = uuid.uuid1().hex product.featured_time = 0 product.active = 1 return product
def saveProductData(request, productForm): product = Product() product.name = productForm.cleaned_data['name'] product.description = productForm.cleaned_data['description'] product.q_amount = productForm.cleaned_data['q_amount'] user = request.user product.id_owner = user product.start_datetime = str(datetime.now()) product.end_datetime = str(datetime.now()) product.follower_qty = 0 product.visit_qty = 0 product.img = uuid.uuid1().hex product.featured_time = 0; product.active = 1 return product
def test_post_new_order_form_correct(self): # create client and log them in client = Client() client.login(username='******', password="******") # create product in database product = Product() product.id = 3 product.price = 20 product.num_in_stock = 10 product.description = "description" product.tags = "tags" product.save() country = ShippingDestination.objects.create(country="US", shipping_price=10) Order.objects.create(customer=self.user) # create session data for product session = client.session session['cart'] = { 'orderItems': [{ 'listingId': 3, 'quantity': 1 }], 'total': 20, 'count': 1 } session.save() client.post( '/cart/checkout/info/', { 'full_name': 'John Wayne', 'address_line_1': '1234 Test', 'town_or_city': 'City', 'state': 'State', 'postcode': '12345', 'country': country.id, }) order = Order.objects.filter(customer=self.user).first() self.assertEqual(order.full_name, "John Wayne") self.assertEqual(order.state, "State") self.assertEqual(order.country, country) self.assertIsInstance(order, Order)
def index(request, product_uuid=None): product = None if not product_uuid else Product.objects.get(uuid=product_uuid) if request.method == 'POST': p = Product() p.name = request.POST.get('name', None) p.description = request.POST.get('description', None) p.image_url = request.POST.get('image_url', None) p.url = request.POST.get('url', None) p.author = request.user if request.user.id else None p.save() if not product and Product.objects.count() != 0: product = Product.objects.order_by('-created')[0] ctx = { 'product': product, 'latest': Product.objects.order_by('-created')[:5], } return render_to_response('index.html', ctx, context_instance=RequestContext(request))
def _product(self, item): try: product = Product.objects.get(wholesale_legacy_id=int(item['id']), is_visible=True) except Product.DoesNotExist: product = Product() except Product.MultipleObjectsReturned: print item['id'] for p in Product.objects.filter(wholesale_legacy_id=int(item['id'])): print p.id, p.title, p.code, p.sku print '-----' raise quantity = int(item.get('qtyi', 0)) if quantity < 0: quantity = 0 weight = int(item.get('weight', 0)) if weight < 0: weight = 0 product.sku = item['article'] product.weight = weight product.quantity = quantity product.code = item['link'] product.title = item['name'] product.description = item['descr'] product.is_visible = bool(int(item['pub'])) product.wholesale_legacy_id = item['id'] product.created = TIMEZONE.localize(datetime.datetime.fromtimestamp(int(item['dt']))) size = None try: size = SIZE_RE.findall(u' '.join([item['name'], item.get('alt', ''), item['descr']]))[0] except IndexError: try: size = SIZE2_RE.findall(u' '.join([item['name'], item.get('alt', ''), item['descr']]))[0] except IndexError: pass if size: product.size = u'×'.join([str(x) for x in size]) return product
def post(self, request): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) product = Product() product.user = request.user product.price = float(serializer.data.get('price')) product.currency = serializer.data.get('currency') product.title = serializer.data.get('title') product.description = serializer.data.get('description') product.category = Category.objects.get(id=1) product.time = serializer.data.get('time') product.length = 0 product.width = 0 product.height = 0 product.weight = 0 product.request = 1 product.accept = 0 product.save() requested = Request() requested.seller = serializer.validated_data['seller'] requested.buyer = request.user requested.product = product requested.save() assets = serializer.data.get('assets') if assets: for url in assets: asset = Asset(product=product, url=url) asset.save() ItemRequest_Notification(requested.seller, request.user, product) ItemRequest_mail(requested.seller, request.user, product) return Response( { "result": True, "data": { "Msg": "Item Request created", "Request_id": requested.id, } }, status=status.HTTP_201_CREATED)
def test_post_new_order_form_correct(self): """ Test that post request to checkout info view is received and processed into the database correctly """ # create client and log them in client = Client() client.login(username='******', password="******") # create product in database product = Product() product.id = 3 product.price = 20 product.num_in_stock = 10 product.description = "description" product.tags = "tags" product.save() country = ShippingDestination.objects.create(country="UK", shipping_price=10) Order.objects.create(customer=self.user) # create session data for product session = client.session session['cart'] = {'orderItems': [{'listingId': 3, 'quantity': 1}], 'total': 20, 'count': 1} session.save() client.post( '/cart/checkout/info/', { 'full_name': 'Arthur Dent', 'address_line_1': 'Street House 1', 'town_or_city': 'City', 'county': 'Devon', 'postcode': '1234CB', 'country': country.id, } ) order = Order.objects.filter(customer=self.user).first() self.assertEqual(order.full_name, "Arthur Dent") self.assertEqual(order.county, "Devon") self.assertEqual(order.country, country) self.assertIsInstance(order, Order)
def post(self, request): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) product = Product() product.user = request.user product.category = serializer.validated_data['category'] product.price = float(serializer.data.get('price')) product.currency = serializer.data.get('currency') product.title = serializer.data.get('title') product.description = serializer.data.get('description') product.time = serializer.data.get('time') product.length = serializer.data.get('length') product.width = serializer.data.get('width') product.height = serializer.data.get('height') product.weight = serializer.data.get('weight') product.save() assets = serializer.data.get('assets') if assets: for url in assets: asset = Asset(product=product, url=url) asset.save() tags = serializer.data.get('tag') if tags: for t in tags: tag = HashTags(product=product, tag=t) tag.save() # ProductPost_Notification(user) return Response( { "result": True, "data": { "Msg": "product created", "product_id": product.id, } }, status=status.HTTP_201_CREATED)
def _product(self, item): try: product = Product.objects.get(id=int(item['id'])) except Product.DoesNotExist: product = Product(id=int(item['id'])) quantity = int(item.get('qtyi', 0)) if quantity < 0: quantity = 0 weight = int(item.get('weight', 0)) if weight < 0: weight = 0 product.sku = item['article'] product.weight = weight product.quantity = quantity product.code = item['link'] product.title = item['name'] product.description = item['descr'] product.is_visible = bool(int(item['pub'])) product.is_wholesale = False product.created = TIMEZONE.localize(datetime.datetime.fromtimestamp(int(item['dt']))) size = None try: size = SIZE_RE.findall(u' '.join([item['name'], item.get('alt', ''), item['descr']]))[0] except IndexError: try: size = SIZE2_RE.findall(u' '.join([item['name'], item.get('alt', ''), item['descr']]))[0] except IndexError: pass if size: product.size = u'×'.join([str(x) for x in size]) return product
def create(self, request): dic = request.data.dict() id_cat = dic.pop('category', None) cat = Category.objects.filter(pk=id_cat).first() print(cat) pro = Product() pro.category = cat pro.description = dic.pop('description', None) pro.display = dic.pop('display', None) pro.display_in_home = dic.pop('display_in_home', None) pro.name = dic.pop('name', None) pro.offer_discount = dic.pop('offer_discount', None) pro.order = dic.pop('order', None) pro.price = dic.pop('price', None) print(dic) colors = dic.getlist('color_stocks', None) print(colors) return Response('Hola :V')
def get_queryset(self, **kwargs): # new query = self.request.GET.get('q', None) object_list = Product.objects.filter( Q(productid__icontains=query) | Q(name__icontains=query) | Q(type__icontains=query) | Q(description__icontains=query)) #change start for remote SearchProductsForm if not object_list: api = ApiDomains() url = api.product + "/" + "refresh" #url = 'https://94q78vev60.execute-api.us-east-1.amazonaws.com/Prod/intellidataProductAPI/history' payload = {'ident': query} resp = requests.get(url, params=payload) print(resp.status_code) obj = get_object_or_404(APICodes, http_response_code=resp.status_code) status_message = obj.http_response_message mesg = str(resp.status_code) + " - " + status_message if resp.status_code != 200: # This means something went wrong. #raise ApiError('GET /tasks/ {}'.format(resp.status_code)) #raise APIError(resp.status_code) #message={'messages':mesg} #return render(self.request, "messages.html", context=message) print("Status Code: " + str(resp.status_code)) else: json_data = [] json_data = resp.json() obj_data = [] obj1 = Product() #OVERRIDE THE OBJECT WITH API data obj1.pk = int(json_data["LOCAL_ID"]) obj1.productid = json_data["PRODUCT_ID"] obj1.name = json_data["NAME"] obj1.type = json_data["TYPE"] obj1.coverage_limit = json_data["COVERAGE_LIMIT"] obj1.price_per_1000_units = json_data["RATE"] obj1.product_date = json_data["CREATE_DATE"] obj1.description = json_data["DESCRIPTION"] obj1.description_html = misaka.html(obj1.description) #obj1.photo = json_data["PHOTO"] obj1.creator = User.objects.get(pk=int(json_data["CREATOR"])) #obj.crerator = get_object_or_404(User, pk=obj.creatorid) obj1.create_date = json_data["CREATE_DATE"] obj1.backend_SOR_connection = "Disconnected" obj1.response = "Pulled From Backend" obj1.commit_indicator = json_data["COMMIT_INDICATOR"] obj1.record_status = json_data["RECORD_STATUS"] obj1.save() #obj_data.append(obj1) #print(obj_data) #context = {'object_list':obj_data} #return render(self.request, "products/product_search_list.html", context=context) object_remote_list = Product.objects.filter(productid=query) print(object_remote_list) return object_remote_list else: #change end for remote SearchProductsForm return object_list
def RefreshProduct(request, pk): # fetch the object related to passed id context = {} prod_obj = get_object_or_404(Product, pk=pk) api = ApiDomains() url = api.product + "/" + "refresh" #url = 'https://94q78vev60.execute-api.us-east-1.amazonaws.com/Prod/intellidataProductAPI/history' payload = {'ident': prod_obj.productid} resp = requests.get(url, params=payload) print(resp.status_code) obj = get_object_or_404(APICodes, http_response_code=resp.status_code) status_message = obj.http_response_message mesg = str(resp.status_code) + " - " + status_message if resp.status_code != 200: # This means something went wrong. #raise ApiError('GET /tasks/ {}'.format(resp.status_code)) #raise APIError(resp.status_code) message = {'messages': mesg} return render(request, "messages.html", context=message) else: json_data = [] json_data = resp.json() obj1 = Product() #OVERRIDE THE OBJECT WITH API data obj1.pk = int(json_data["LOCAL_ID"]) obj1.productid = json_data["PRODUCT_ID"] obj1.name = json_data["NAME"] obj1.type = json_data["TYPE"] obj1.coverage_limit = json_data["COVERAGE_LIMIT"] obj1.price_per_1000_units = json_data["RATE"] obj1.product_date = json_data["CREATE_DATE"] obj1.description = json_data["DESCRIPTION"] obj1.description_html = misaka.html(obj1.description) #obj1.photo = json_data["PHOTO"] obj1.creator = User.objects.get(pk=int(json_data["CREATOR"])) #obj.crerator = get_object_or_404(User, pk=obj.creatorid) obj1.create_date = json_data["CREATE_DATE"] obj1.backend_SOR_connection = "Disconnected" obj1.response = json_data["RESPONSE"] obj1.commit_indicator = json_data["COMMIT_INDICATOR"] obj1.record_status = json_data["RECORD_STATUS"] #Log events event = Event() event.EventTypeCode = "PRR" event.EventSubjectId = obj1.productid event.EventSubjectName = obj1.name event.EventTypeReason = "Product refreshed from ODS" event.source = "Online Transaction" event.creator = obj1.creator event.save() obj1.save() context = {'product_details': obj1} return render(request, "products/product_detail.html", context=context)
def product_add_view(request): if request.POST.get('book_id'): product = Product.objects.get(id=request.POST.get('book_id')) if request.POST.get('username'): product.price = request.POST.get('username') else: product.price = '0' if request.POST.get('email'): product.title = request.POST.get('email') else: product.title = 'No Title' if not request.POST.get('name'): product.currency = '$' else: product.currency = request.POST.get('name') if request.POST.get('active'): product.available = request.POST.get('active') else: product.available = 'True' if request.POST.get('address'): product.description = request.POST.get('address') else: product.description = 'No Description' product.user.email = request.POST.get('over') if request.POST.get('create'): product.created_at = request.POST.get('create') else: product.created_at = datetime.datetime.now() if request.POST.get('last'): product.updated_at = request.POST.get('last') else: product.updated_at = datetime.datetime.now() product.save() return HttpResponseRedirect('/admin/products-list') else: product = Product() if request.POST.get('username'): product.price = request.POST.get('username') else: product.price = '0' if request.POST.get('email'): product.title = request.POST.get('email') else: product.title = 'No Title' if not request.POST.get('name'): product.currency = '$' else: product.currency = request.POST.get('name') product.available = 'True' if request.POST.get('address'): product.description = request.POST.get('address') else: product.description = 'No Description' product.user.email = request.POST.get('over') if request.POST.get('create'): product.created_at = request.POST.get('create') else: product.created_at = datetime.datetime.now() if request.POST.get('last'): product.updated_at = request.POST.get('last') else: product.updated_at = datetime.datetime.now() product.save() return HttpResponseRedirect('/admin/products-list') return HttpResponseRedirect('/admin/products-list')