def saveProduct(request): if request.method == 'POST' and request.user.is_authenticated(): productForm = ProductForm(request.POST, prefix='product') if productForm.is_valid(): category_form = CategoryForm(data=request.POST, prefix='category') if category_form.is_valid(): producto = saveProductData(request, productForm) imageForm = ImagesForm(request.POST, request.FILES, prefix='image') if imageForm.is_valid(): producto.save() saveCategoryData(producto, category_form) saveAlbumData(producto, request.user.id) saveImages(request, producto.img) puntos = Point.objects.get(action="new_product") profile = request.user.profile profile.quds = profile.quds + int(puntos.qty) profile.save() else: return HttpResponse("NO FILES") return HttpResponseRedirect("/products/" + str(producto.id)) else: return HttpResponse("CATEGORY FAIL") else: return HttpResponse("INVALID PRODUCT") return HttpResponse("FAIL")
def createCategoryPopup(request): form = CategoryForm(request.POST or None) if form.is_valid(): instance = form.save() return HttpResponse( '<script>opener.closePopup(window, "%s", "%s", "#id_category");</script>' % (instance.pk, instance)) return render(request, 'dashboard/ajax_calls/popup_form.html', {"form": form})
def test_category_crete_new_with_logged_user(self): categories = Category.objects.all() self.assertEqual(len(categories), 2) self.assertEqual(Category.objects.count(), 2) new_category = { 'name': 'Nova Categoria', 'description': 'Categoria de testes', } form = CategoryForm(new_category) self.assertEqual(form.is_valid(), True) request = self.factory.post(reverse('category_new'), data=new_category) request.user = self.staff_user setattr(request, 'session', 'session') messages = FallbackStorage(request) setattr(request, '_messages', messages) response = category_new(request) self.assertEqual(response.status_code, 302) self.assertEqual(response.url, '/products/categories/') categories = Category.objects.all() self.assertEqual(len(categories), 3) self.assertEqual(Category.objects.count(), 3)
def saveProduct(request): if request.method == 'POST' and request.user.is_authenticated(): productForm = ProductForm(request.POST, prefix='product') if productForm.is_valid(): category_form = CategoryForm(data=request.POST, prefix='category') if category_form.is_valid(): producto = saveProductData(request, productForm) imageForm = ImagesForm(request.POST,request.FILES, prefix='image') if imageForm.is_valid(): producto.save() saveCategoryData(producto, category_form) saveAlbumData(producto, request.user.id) saveImages(request, producto.img) puntos = Point.objects.get(action="new_product") profile = request.user.profile profile.quds = profile.quds + int(puntos.qty) profile.save() else: return HttpResponse("NO FILES") return HttpResponseRedirect("/products/" + str(producto.id)) else: return HttpResponse("CATEGORY FAIL") else: return HttpResponse("INVALID PRODUCT") return HttpResponse("FAIL")
def category_edit(request, pk=None): instance = get_object_or_404(Category, id=pk) form = CategoryForm(request.POST or None, instance=instance) if form.is_valid(): form.save() return HttpResponse( '<script>opener.closePopup(window, "%s", "%s", "#id_author");</script>' % (instance.pk, instance)) return render(request, 'dashboard/ajax_calls/popup_form.html', {"form": form})
def addcategory(): if request.method == 'POST': form = CategoryForm(request.form) if form.validate(): category = Category(name=form.name.data) db.session.add(category) db.session.commit() flash('Category"%s" created successfully.' % category.name, 'success') return redirect(url_for('products.index', slug=category.slug)) else: form = CategoryForm() return render_template('products/addcategory.html', form=form)
def add_category(request): form = CategoryForm(request.POST or None) c = Category.objects.all() if form.is_valid(): category = form.save(commit=False) category.save() messages.success(request, "Category added successfully") return render(request, 'products/categories.html', {'categories': c}) context = {'form': form} return render(request, 'products/add_category.html', context)
def mutate_and_get_payload(cls, input, context, info): # check user check_superuser(context) parent_id = input.get('parent_id') parent = get_node(parent_id, context, info, Category) # create category form = CategoryForm(input) if form.is_valid(): new_category = form.save(commit=False) new_category.parent = parent new_category.save() else: raise FormError(form.errors) return CreateCategoryMutation(category=new_category)
def category_update(request, pk): category = get_object_or_404(Category, pk=pk) if request.user.is_superuser or request.user == category.restaurant.manager: pass else: messages.warning(request, "Você não tem permissão.") return redirect('dashboard') if request.method == 'POST': form = CategoryForm(request.POST, instance=category) try: if form.is_valid(): form.save() messages.success(request, "Categoria atualizada") return redirect('category_update', pk=pk) except Exception as e: messages.warning(request, 'Ocorreu um erro ao atualizar: {}'.format(e)) else: form = CategoryForm(instance=category) return render(request, 'products/category_update.html', {'form': form})
def add_a_category(request): if request.method == "POST": category_form = CategoryForm(request.POST, request.FILES) if category_form.is_valid(): category_form.save() return redirect(dashboard_product) else: category_form = CategoryForm() return render(request, "dashboardaddcategory.html", {'category_form': category_form})
def mutate_and_get_payload(cls, input, context, info): # check user check_superuser(context) category_id = input.get('id', None) category = get_node(category_id, context, info, Category) if not category: raise ResponseError("Invalid Category", code='invalid_category') parent_id = input.get('parent_id') parent = get_node(parent_id, context, info, Category) # update category form = CategoryForm(input, instance=category) if form.is_valid(): form.save() category.parent = parent category.save() else: raise FormError(form.errors) return UpdateCategoryMutation(category=category)
def category_create(request): template_write_name = 'Create category' template_name = 'products/create.html', success_url = reverse_lazy('products:product_list') form = CategoryForm(request.POST) if request.method == 'POST': if form.is_valid(): title = form.cleaned_data.get('title') snippet = form.cleaned_data.get('snippet') Category.objects.create( title=title, snippet=snippet, ) return redirect(success_url) return render(request, template_name, { 'form': form, 'template_write_name': template_write_name }) # Более меньшая и сокращённая версия, чем выше # def category_model_create(request): # template_name = 'products/create.html', # success_url = reverse_lazy('products:list') # form = CategoryModelForm(request.POST) # # if request.method == 'POST': # if form.is_valid(): # form.save() # # return redirect(success_url) # # return render(request, template_name, {'form': form})
def search(request, page=None): data = None try: if page==None or page=="": data = Product.objects.filter(active=True).order_by('q_amount').order_by('featured')[:20] else: cant = 20*(int(page) - 1) data = Product.objects.filter(active=True).order_by('q_amount').order_by('featured')[cant:20] except ObjectDoesNotExist: data = None form = CategoryForm() user = None if request.user.is_authenticated(): user = request.user return render_to_response("main.html", {'form':form, 'user':user, 'data':data,'direccion':settings.MEDIA_ROOT}, context_instance=RequestContext(request))
def newProduct(request): if request.user.is_authenticated(): imageForm = ImagesForm(prefix='image') productForm = ProductForm(prefix='product') categoryForm = CategoryForm(prefix='category') title = "Nuevo producto" usuario = request.user return render_to_response("newproduct.html", { 'image_form': imageForm, 'product_form': productForm, 'category_form': categoryForm, 'title': title, 'user': usuario }, context_instance=RequestContext(request)) else: return HttpResponseRedirect("/login")
def category_create(request): form = CategoryForm() if request.method == 'POST': form = CategoryForm(request.POST) if form.is_valid(): # Category.objects.create( # name=form.cleaned_data.get('name'), # description=form.cleaned_data.get('description') # ) form.save() return redirect( reverse('products:index') ) return render( request, 'categories/create.html', { 'form': form, 'page_title': 'Create category' } )
def category_update(request, pk): obj = get_object_or_404(Category, pk=pk) form = CategoryForm(instance=obj) if request.method == 'POST': form = CategoryForm( request.POST, instance=obj ) if form.is_valid(): form.save() return redirect( reverse('products:index') ) return render( request, 'categories/update.html', { 'form': form, 'page_title': 'Update category' } )
def category_new(request): try: restaurant = Restaurant.objects.get(manager=request.user) except Restaurant.DoesNotExist: messages.warning(request, "Você precisa cadastrar um restaurante") return redirect('new_restaurant') if request.method == "POST": form = CategoryForm(request.POST) if form.is_valid(): category = form.save(commit=False) category.restaurant = restaurant category.save() messages.success(request, "Nova categoria cadastrada.") return redirect(categories_list) else: form = CategoryForm() return render(request, 'products/category_new.html', {'form': form})
def searchFilter(request, city=None, isCity=False, country=None, isCountry=False): try: if request.is_ajax(): if request.method == 'POST': form = CategoryForm(request.POST) if form.is_valid(): data = None prodCat = None selected = False try: if form.cleaned_data['field_1'] == True: selected = True prodCat = ProductCategory.objects.filter( id_category=1).values_list('id_product', flat=True) if form.cleaned_data['field_2'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=2).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_3'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=3).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_4'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=4).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_5'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=5).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_6'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=6).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_7'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=7).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_8'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=8).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_9'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=9).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_10'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=10).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_11'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=11).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_12'] == True: selected = True prodCat2 = ProductCategory.objects.filter( id_category=12).values_list('id_product', flat=True) if prodCat != None: prodCat = intersect(prodCat, prodCat2) else: prodCat = prodCat2 #Se usa el filtro por ciudad o pais si se solicita. if prodCat != None: if isCity: data = Product.objects.filter( active=True).filter(id__in=prodCat).filter( id_owner__city__name=city) elif isCountry: data = Product.objects.filter( active=True ).filter(id__in=prodCat).filter( id_owner__city__id_country__name=country) else: data = Product.objects.filter( active=True).filter(id__in=prodCat) else: if selected == True: data = None else: if isCity: data = Product.objects.filter( active=True).filter( id_owner__city__name=city) elif isCountry: data = Product.objects.filter( active=True ).filter( id_owner__city__id_country__name=country ) else: data = Product.objects.filter( active=True).all() #Se agrega el orden de los datos. if request.POST['filter'] == "popularity": data = data.order_by('follower_qty') elif request.POST['filter'] == "price": data = data.order_by('q_amount') else: data = data.order_by('start_datetime') except ObjectDoesNotExist: data = None except: data = None user = None if request.user.is_authenticated(): user = request.user c = {'data': data} c.update(csrf(request)) response = render_to_response("search.html", c) else: response = HttpResponse("NO VALID") message = {"products": response.content} json = simplejson.dumps(message) return HttpResponse(json, mimetype='application/json') else: return HttpResponseRedirect("/login") else: return HttpResponseRedirect("/register") except Exception as e: print e return HttpResponseRedirect("/products")
def searchFilter(request, city=None, isCity=False, country=None, isCountry=False): try: if request.is_ajax(): if request.method == 'POST': form = CategoryForm(request.POST) if form.is_valid(): data = None prodCat = None selected = False try: if form.cleaned_data['field_1']==True: selected = True prodCat = ProductCategory.objects.filter(id_category=1).values_list('id_product', flat=True) if form.cleaned_data['field_2']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=2).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_3']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=3).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_4']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=4).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_5']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=5).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_6']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=6).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_7']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=7).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_8']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=8).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_9']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=9).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_10']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=10).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_11']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=11).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 if form.cleaned_data['field_12']==True: selected = True prodCat2 = ProductCategory.objects.filter(id_category=12).values_list('id_product', flat=True) if prodCat!=None: prodCat = intersect(prodCat,prodCat2) else: prodCat = prodCat2 #Se usa el filtro por ciudad o pais si se solicita. if prodCat!=None: if isCity: data = Product.objects.filter(active=True).filter(id__in=prodCat).filter(id_owner__city__name=city) elif isCountry: data = Product.objects.filter(active=True).filter(id__in=prodCat).filter(id_owner__city__id_country__name=country) else: data = Product.objects.filter(active=True).filter(id__in=prodCat) else: if selected==True: data = None else: if isCity: data = Product.objects.filter(active=True).filter(id_owner__city__name=city) elif isCountry: data = Product.objects.filter(active=True).filter(id_owner__city__id_country__name=country) else: data = Product.objects.filter(active=True).all() #Se agrega el orden de los datos. if request.POST['filter']=="popularity": data = data.order_by('follower_qty') elif request.POST['filter']=="price": data = data.order_by('q_amount') else: data = data.order_by('start_datetime') except ObjectDoesNotExist: data= None except: data= None user = None if request.user.is_authenticated(): user = request.user c = {'data':data} c.update(csrf(request)) response = render_to_response("search.html", c) else: response = HttpResponse("NO VALID") message = {"products": response.content} json = simplejson.dumps(message) return HttpResponse(json, mimetype='application/json') else: return HttpResponseRedirect("/login") else: return HttpResponseRedirect("/register") except Exception as e: print e return HttpResponseRedirect("/products")