Exemplo n.º 1
0
    def handle(self, *args, **options):
        """
            Manage the command for :
            - delete the products and categories in database
            - populate the database with categories and products
        """
        # If arg --delete
        if options['delete']:
            categories = Category.objects.all()
            products = Product.objects.all()
            if products:
                Product.objects.all().delete()
            if categories:
                Category.objects.all().delete()
                self.stdout.write(
                    _('The products and their categories have been deleted'))
            else:
                self.stdout.write(_('The database is already empty.'))
        else:
            # Management categories
            self.stdout.write(_('Add the categories from api OpenfoodFact'))
            new_categories = self.api_food.get_categories()

            for categ in new_categories:
                category = Category.objects.filter(name=categ['name'])
                if not category.exists():
                    category = Category.objects.create(
                        name=categ['name'],
                        url_product=categ['url'],
                        api_id=categ['id'])

            # Management products
            self.stdout.write(_('Add the products now'))
            new_products = self.api_food.get_products(Category.objects.all())

            for prod in new_products:
                product = Product.objects.filter(name=prod['name'])
                if not product.exists():
                    product = Product()
                    Product.create_product(
                        name=prod['name'],
                        description=prod['desc'],
                        store=prod['store'],
                        nutriscore=prod['nutriscore'],
                        nutriscore_grade=prod['nutriscore_grade'],
                        image=prod['image'],
                        url_api=prod['url_api'],
                        category_ids=prod['category_ids'],
                        fat_level=prod['fat_level'],
                        satured_fat_level=prod['satured_fat_level'],
                        sugars_level=prod['sugars_level'],
                        salt_level=prod['salt_level'],
                        fat_g=prod['fat_g'],
                        satured_fat_g=prod['satured_fat_g'],
                        sugars_g=prod['sugars_g'],
                        salt_g=prod['salt_g'])
Exemplo n.º 2
0
 def setUp(self):
     self.user = User.objects.create_user(username='******',
                                          first_name='test_first_name',
                                          last_name='test_last_name',
                                          email='*****@*****.**',
                                          password='******',
                                          subscribed=True)
     self.product = Product.create_product(
         name='Jus d\'orange',
         description='description',
         store='Auchan',
         nutriscore='1',
         nutriscore_grade='c',
         image=
         'https://static.openfoodfacts.org/images/products/322/885/700/0852/front_fr.134.400.jpg',
         url_api=
         'https://fr.openfoodfacts.org/produit/3502110009449/pur-jus-d-orange-sans-pulpe-tropicana',
         category_ids=[1],
         fat_level='low',
         satured_fat_level='low',
         sugars_level='moderate',
         salt_level='low',
         fat_g=0,
         satured_fat_g=0,
         sugars_g=8.9,
         salt_g=0)
     self.product.user_ids.add(self.user)
Exemplo n.º 3
0
    def post(request):

        form = ProductForm(request.POST)

        if form.errors:
            messages.add_message(request, messages.INFO,
                                 dict(form.errors.items()))

        if form.is_valid():
            try:
                Product.create_product({
                    'brand':
                    form.cleaned_data.get('brand'),
                    'product_name':
                    form.cleaned_data.get('product_name'),
                    'model_number':
                    form.cleaned_data.get('model_number'),
                    'category':
                    ProductCategory.get_by_id(
                        form.cleaned_data.get('category')),
                    'jan_code':
                    form.cleaned_data.get('jan_code'),
                })

                return HttpResponseRedirect('/admin/products')

            except:
                pass

        categories = ProductCategory.get_all()
        return TemplateResponse(
            request, 'products_create.html', {
                'categories': categories,
                'form_data': form.cleaned_data,
                'error_messages': get_error_message(request),
            })