Example #1
0
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")
Example #2
0
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})
Example #3
0
    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)
Example #4
0
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")
Example #5
0
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})
Example #6
0
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)
Example #7
0
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)
Example #8
0
    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)
Example #9
0
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})
Example #10
0
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})
Example #11
0
    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)
Example #12
0
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})
Example #13
0
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))
Example #14
0
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")
Example #15
0
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'
        }
    )
Example #16
0
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'
        }
    )
Example #17
0
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})
Example #18
0
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")
Example #19
0
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")