Exemplo n.º 1
0
def user_newproduct(request):
    current_user = request.user
    if request.method == 'POST':  # Form post edildiyse
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            data = Product()  # model ile bağlantı kur
            data.category = form.cleaned_data['category']  # formdan bilgiyi al
            data.user = current_user
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.price = form.cleaned_data['price']
            data.image = form.cleaned_data['image']
            data.amount = form.cleaned_data['amount']
            data.detail = form.cleaned_data['detail']
            data.slug = form.cleaned_data['slug']
            data.ip = request.META.get('REMOTE_ADDR')
            data.save()  # veritabanına kaydet
            messages.success(request, "Ürününüz başarı ile gönderilmiştir.")
            return HttpResponseRedirect('/user/products')
        else:
            messages.warning(request, "Hata:" + str(form.errors))
            return HttpResponseRedirect('/user/products')

    category = Category.objects.all()
    form = ProductForm()
    context = {'form': form, 'category': category, }
    return render(request, 'user_newproduct.html', context)
Exemplo n.º 2
0
def product_post(request):
    if request.user.has_perm('accounts.admin'):
        if request.method == 'POST':
            form = ProductPostForm(request.POST, request.FILES)
            try:
                if form.is_valid():
                    product = Product()
                    product.category = Category.objects.get(
                        id=request.POST['category'])
                    product.name = request.POST['name']
                    product.image = request.FILES['image']
                    product.price = request.POST['price']
                    product.count = request.POST['count']
                    product.save()
            except KeyError:
                pass
        else:
            form = ProductPostForm(None)

        product = Product.objects.all()
        category = Category.objects.all()
        return TemplateResponse(
            request, 'product/product_post.html', {
                'form': form,
                'product': product,
                'propro': propro,
                'category': category
            })
    else:
        return TemplateResponse(request, 'top/toppage.html')
Exemplo n.º 3
0
def addcontent(request):
    if request.method == 'POST':
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Product()
            data.user_id = current_user.id
            data.category = form.cleaned_data['category']
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.Yazar = form.cleaned_data['Yazar']
            data.price = form.cleaned_data['price']
            data.amount = form.cleaned_data['amount']
            data.detail = form.cleaned_data['detail']
            data.slug = form.cleaned_data['slug']
            data.status = 'False'
            data.save()
            messages.success(request, 'Admine Gönderildi onay bekleniyor')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.warning(request, 'Hata var :    ' + str(form.errors))
            return HttpResponseRedirect('/')
    else:
        category = Category.objects.all()
        menu = Menu.objects.all()
        form = ProductForm()
        context = {
            'category': category,
            'form': form,
            'menu': menu,
        }
        return render(request, 'user_addcontent.html', context)
Exemplo n.º 4
0
def addcontent(request):
    if request.method == 'POST':
        form = ProductForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Product()
            data.user_id = current_user.id
            data.title = form.cleaned_data['title']
            data.category = form.cleaned_data['category']
            data.price = form.cleaned_data['price']
            data.amount = form.cleaned_data['amount']
            data.detail = form.cleaned_data['detail']
            data.image = form.cleaned_data['image']
            data.slug = form.cleaned_data['slug']

            data.save()
            messages.success(request, 'Success')
            return HttpResponseRedirect('/user/contents')
        else:
            messages.success(request, 'Error : ' + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')

    else:
        category = Category.objects.all()
        menu = Menu.objects.all()
        form = ProductForm()
        context = {
            'menu': menu,
            'category': category,
            'form': form,
        }
        return render(request, 'user_addcontent.html', context)
Exemplo n.º 5
0
def addcontent(request):
    if request.method == 'POST':  # form post edildiyse
        form = ContentForm(request.POST, request.FILES)
        if form.is_valid():
            current_user = request.user
            data = Product()
            data.user_id = current_user.id
            data.category = form.cleaned_data['category']
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.price = form.cleaned_data['price']
            data.amount = form.cleaned_data['amount']
            data.detail = form.cleaned_data['detail']
            data.slug = form.cleaned_data['slug']
            data.status = 'False'
            data.save()
            messages.success(request, "Your Content Inserted successfully.")
            return HttpResponseRedirect('/user/contents')
        else:
            messages.success(request,
                             "Content Form error :" + str(form.errors))
            return HttpResponseRedirect('/user/addcontent')
    else:
        category = Category.objects.all()
        form = ContentForm()
        context = {
            'form': form,
            'category': category,
        }
        return render(request, 'user_addcontent.html', context)
def add(request):
    ImageFormSet = modelformset_factory(Images, fields=('image', ), extra=6)
    if request.method == 'POST':
        form = AddEstateForm(request.POST, request.FILES)
        formset = ImageFormSet(request.POST or None, request.FILES or None)
        if form.is_valid() and formset.is_valid():
            current_user = request.user
            data = Product()
            data.user_id = current_user.id
            data.category = form.cleaned_data['category']
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.price = form.cleaned_data['price']
            data.image = form.cleaned_data['image']
            data.m2 = form.cleaned_data['m2']
            data.room_number = form.cleaned_data['room_number']
            data.age_of_building = form.cleaned_data['age_of_building']
            data.city = form.cleaned_data['city']
            data.detail = form.cleaned_data['detail']
            data.status = 'False'
            data.slug = str(data.category_id) + str(get_random()) + str(
                get_random())
            data.save()
            for f in formset:
                try:
                    photo = Images()
                    photo.product_id = data.id
                    photo.image = f.cleaned_data['image']
                    photo.title = str(data.category_id) + str(
                        data.title) + str(get_random())
                    photo.save()
                except Exception as e:
                    break
            messages.success(request, 'Your content is inserted')
            return HttpResponseRedirect('/add')
        else:
            messages.success(request, 'Form Error: ' + str(form.errors))
            return HttpResponseRedirect('/')
    else:
        category = Category.objects.all()
        setting = Setting.objects.get(pk=1)
        form = AddEstateForm
        formset = ImageFormSet(queryset=Images.objects.none())
        context = {
            'category': category,
            'form': form,
            'formset': formset,
            'setting': setting
        }
        return render(request, 'add.html', context)
Exemplo n.º 7
0
    def post(self, request):
        import pdb
        pdb.set_trace()
        body: str = request.body.decode('utf-8')
        req_body: Dict = loads(body)
        product = Product()
        product.name = req_body['name']
        product.price = req_body['price']
        product.description = req_body['description']
        product.category = Category.objects.get(pk=req_body['category'])
        product.save()

        data = product_serializer(product)
        return JsonResponse(data=data, status=201)
Exemplo n.º 8
0
    def handle(self, **options):
        categories = [
            ("کلاه", "انواع کلاه ها با رنگبندی های مختلف برای آقایان و بانوان"),
            ("عینک", "عینک های آفتابی متنوع با کیفیت عالی"),
            ("ساعت مچی", "ساعت مچی متناسب برای زیباپسندان"),
            ("انگشتر", "انواع انگشتر های زیبا و جذاب"),
            ("کیف پول", "انواع کیف پول پارچه ای و چرمی "),
        ]

        for category_data in categories:
            c = Category()
            c.title, c.description = category_data
            c.save()
        hat_images_path = path.join(settings.BASE_DIR, "media", "hat")
        pictures = [f for f in os.listdir(hat_images_path) if
                    path.isfile(os.path.join(hat_images_path, f))]
        hat_product_data = [
            ("چنار", "کلاه ساده و زیبا", 12000),
            ("روزگار", "یک کلاه متفاوت و زیبا", 16000),
            ("یادگار", "سازگار با هر نوع تیپ", 20000),
            ("نوین", "شکلی و ساده", 10000),
            ("جوانی", "کلاه مناسب نسل جوان", 22000),
            ("سحاب", "کلاه خاص برای افراد خاص", 18000),
            ("چنار", "کلاه ساده و زیبا", 12000),
            ("روزگار", "یک کلاه متفاوت و زیبا", 16000),
            ("یادگار", "سازگار با هر نوع تیپ", 20000),
            ("نوین", "شکلی و ساده", 10000),
            ("جوانی", "کلاه مناسب نسل جوان", 22000),
            ("سحاب", "کلاه خاص برای افراد خاص", 18000),
            ("چنار", "کلاه ساده و زیبا", 12000),
            ("روزگار", "یک کلاه متفاوت و زیبا", 16000),
            ("یادگار", "سازگار با هر نوع تیپ", 20000),
            ("نوین", "شکلی و ساده", 10000),
            ("جوانی", "کلاه مناسب نسل جوان", 22000),
            ("سحاب", "کلاه خاص برای افراد خاص", 18000),

        ]
        hat_category = Category.objects.filter(pk=1).first()

        for hat in hat_product_data:
            p = Product()
            p.name, p.description, p.price = hat
            p.category = hat_category
            p.save()
            pic = Picture()
            pic.path.name = "hat/" + pictures.pop()
            pic.product = p
            pic.save()
Exemplo n.º 9
0
def addproduct(request):
    url = request.META.get('HTTP_REFERER')
    if request.method == 'POST':  #POST EDİLDİYSE
        form = AddProductForm(request.POST,
                              request.FILES)  #forma gidiyor user modelsde
        if form.is_valid():
            current_user = request.user  #access user session information

            data = Product()
            data.user_id = current_user.id
            data.category = form.cleaned_data['category']
            data.title = form.cleaned_data['title']
            data.keywords = form.cleaned_data['keywords']
            data.description = form.cleaned_data['description']
            data.image = form.cleaned_data['image']
            data.price = form.cleaned_data['price']
            data.ili = form.cleaned_data['ili']
            data.detail = form.cleaned_data['detail']
            data.slug = form.cleaned_data['slug']
            data.metrekare = form.cleaned_data['metrekare']
            data.binayasi = form.cleaned_data['binayasi']
            data.kati = form.cleaned_data['kati']
            data.banyosayisi = form.cleaned_data['banyosayisi']
            data.esyali = form.cleaned_data['esyali']
            data.aidat = form.cleaned_data['aidat']
            data.balkonsayisi = form.cleaned_data['balkonsayisi']
            data.depozito = form.cleaned_data['depozito']
            data.odasayisi = form.cleaned_data['odasayisi']
            data.isitma = form.cleaned_data['isitma']
            data.save()  #veritabanına kaydet
            messages.success(request, "eklendi saolun")
            return HttpResponseRedirect(url)

    messages.warning(request, "gönderilemedi  bişey bozuk")
    return HttpResponse('Please correct the error below.<br>' +
                        str(form.errors))
Exemplo n.º 10
0
    def parse_single_product_page(self, html, cat_id):
        try:
            soup = BeautifulSoup(html, 'html.parser')
        except:
            return
        try:
            article = soup.find('span', class_='product-sku-num').text.strip()
        except:
            article = random.randint(1000000, 9999999)
        try:
            title = soup.find('h1', class_='product-header').text.strip()
        except:
            title = 'Unknown product title'
        try:
            price = float(
                soup.find('div', id='price-less-10').find(
                    'div',
                    class_='price-cur').find('span',
                                             class_='num').text.replace(
                                                 ',',
                                                 '.').strip().replace(' ', ''))
        except:
            price = 0
        try:
            old_price_container = soup.find('div', id='price-less-10').find(
                'div', class_='price-old')
        except:
            old_price_container = None
        discount = 0
        if old_price_container:
            old_price = float(
                old_price_container.text.strip().split()[0].replace(
                    ',', '.').replace(' ', ''))
            percent_value = old_price - price
            discount = float((percent_value / old_price) * 100)

        brand = None
        try:
            characteristics_container = soup.find(
                'div', id='product-1-inner').find(
                    'div', class_='collapse-list-content').find(
                        'div', class_='product-spec-wrap').find_all(
                            'div', class_='product-spec__item')
        except:
            characteristics_container = []
        characteristics = list()
        for c_item in characteristics_container:
            holder = c_item.find('dl', class_='product-spec')
            key = holder.find('dt', class_='product-spec__name').text.strip()
            value = holder.find('dd',
                                class_='product-spec__value').text.strip()
            if key.lower() != 'бренд':
                characteristics.append(dict(key=key.lower(), value=value))
            else:
                brand = value

        try:
            description = soup.find('div', id='product-2-inner').find(
                'div', class_='collapse-list-content').find('div').find(
                    'noindex').text
        except:
            description = ""

        documentation_container = soup.find('div', id='product-3')
        documentation = None
        if documentation_container:
            tab_title = documentation_container.find(
                'a', class_='tab-link-collaps', recursive=False).text.strip()
            if tab_title == 'документация':
                documentation = documentation_container.find(
                    'div', class_='collapse-list',
                    recursive=False).find('div',
                                          class_='collapse-list-content',
                                          recursive=False).find(
                                              'div', recursive=False).text

        images = ()
        try:
            img_container = soup.find(
                'div',
                class_='product-summary-slider').find_all('div',
                                                          class_='slider-item')
            for s in img_container:
                img = self.download_image(s.find('img').get('src'))
                if img:
                    images += img,
        except:
            pass

        product = dict(article=article,
                       title=title,
                       price=price,
                       discount=discount,
                       brand=brand,
                       characteristics=characteristics,
                       description=description,
                       documentation=documentation,
                       images=images)

        print(product)

        files = list()
        if len(product['images']) > 0:
            for img in product['images']:
                files.append(('files', open(img, 'rb')))

        kwargs = dict(
            data={
                'title': product['title'],
                'price': product['price'],
                'discount': product['discount'],
                'brand': product['brand'],
                'characteristics': json.dumps(product['characteristics']),
                'description': product['description'],
                'documentation': product['documentation'],
                'category_id': cat_id,
                'article': product['article']
            })

        brand = None
        if product['brand']:
            try:
                brand = Brand.objects.get(title=product['brand'])
            except ObjectDoesNotExist:
                brand = Brand.objects.create(title=product['brand'],
                                             slug=slugify(product['brand']))

        try:
            cat = Category.objects.get(id=cat_id)
        except ObjectDoesNotExist:
            print('Category not found....')
            return

        _product = Product()
        _product.title = product['title']
        _product.price = product['price']
        _product.discount = product['discount']
        _product.brand = brand
        _product.category = cat
        _product.description = product['description']
        _product.documentation = product['documentation']
        _product.discount = product['discount']
        _product.main_image = files[0]
        _product.save()

        for c in product['characteristics']:
            if '?' in c['key']:
                _key = c['key'].split('?')[0]
            else:
                _key = c['key']
            try:
                prop_key = AllProductProperties.objects.get(
                    title=_key.strip().lower())
            except ObjectDoesNotExist:
                prop_key = AllProductProperties.objects.create(
                    title=_key.strip().lower())
            if slugify(_key.strip()) == slugify('вес брутто'):
                value_holder = c['value'].strip().split()
                ProductProperty.objects.create(
                    product=product,
                    key=prop_key,
                    value=float(value_holder[0].replace(',', '.')),
                    value_type=value_holder[1])
            else:
                if '?' in c['key']:
                    ProductProperty.objects.create(
                        product=product,
                        key=prop_key,
                        value=c['value'],
                        prop_tip=c['key'].strip().split('?')[1])
                else:
                    ProductProperty.objects.create(product=product,
                                                   key=prop_key,
                                                   value=c['value'])

        for img in files:
            ProductImage.objects.create(product=product, image=img)

        if os.path.exists('logs/process.log'):
            open_role = 'a'
        else:
            open_role = 'w'

        # with open('logs/process.log', open_role) as f:
        #     f.write(
        #         """
        #         =================================================================================================
        #         Product uploaded, server message: %s; \n
        #         Slug: %s; \n
        #         Category_id: %s; \n
        #         images: [%s]; \n
        #         uploading date: %s;
        #         =================================================================================================
        #         """ % (
        #             ,
        #             slugify(product['title']),
        #             cat_id,
        #             ', '.join(product['images']),
        #             str(datetime.datetime.now())
        #         )
        #     )
        #     f.close()

        for f in files:
            f[1].close()

        for i in product['images']:
            os.remove(i)
Exemplo n.º 11
0
# opens a file with urls of fake articles
profilePicRead = open("generator/profile_pictures.txt", "r+")
product_title = open("generator/product_names.txt", 'r+')
sentencesRead = open("generator/sentences.txt", "r+")
# then makes into an array split by endline
articleUrl = profilePicRead.read().split("\n")
productTitle = product_title.read().split("\n")
sentences = re.findall(r"\s+[^.!?]*[.!?]", sentencesRead.read())

for i in range(80):
	seed = randint(0,200)
	product = Product()
	product.title = productTitle[seed%(len(productTitle)-1)]
	product.description = sentences[seed%(len(sentences)-1)]
	product.category = categories[randint(1,8888)%categories.count()]
	product.price = round(random.uniform(1.5, 111.9),3)
	
	product.thumbnail = articleUrl[seed%(len(articleUrl)-1)]

	if (int(product.price) % 2) == 0:
		product.discount = True

		product.price_discount_percent = round(random.random()*100)
		product.price_discount = product.price - product.price*product.price_discount_percent/100
	
	else:
		product.discount = False

	rand_gender = round(random.random()*10)%3
	if rand_gender == 1: