예제 #1
0
def save_category(event_request, category_id):
    category = Category()
    category.id = event_request.username + str(category_id)
    category.category_id = category_id
    category.username = User.objects.get(pk=event_request.username)

    category.save()
예제 #2
0
    def setUp(self):
        self.browser = webdriver.Firefox()

        category = Category(name="salary", type="income")
        category.save()

        account = Account(name="savings")
        account.save()

        income = Income(category=category, account=account, notes="October 2015 salary", amount=100000, date=datetime.datetime.now())
        income.save()
예제 #3
0
    def setUp(self):
        self.browser = webdriver.Firefox()
        self.browser.implicitly_wait(3)

        category = Category(name="others", type="expense")
        category.save()

        account = Account(name="savings")
        account.save()

        expense = Expense(category=category, account=account, notes="gift", amount=1000, date=datetime.datetime.now())
        expense.save()
예제 #4
0
    def save_products(self):
        """Save products and categories in Database."""

        api_class = Api()
        products_and_categories_from_api = api_class.download_products()

        if products_and_categories_from_api is not None:
            print(" ✅  Les produits ont été téléchargé avec succès depuis l'API")
        else:
            print(" ❌ -> Les produits n'ont pas pu être téléchargés depuis l'API")

        for product in products_and_categories_from_api:
            name = product.get("product_name_fr")[:150].strip().lower().capitalize()
            brands = product.get("brands")[:150].strip().lower().capitalize()
            grade = product.get("nutriscore_grade")[0].upper()
            barcode = product.get("code")[:13].strip()
            url = product.get("url")
            picture = product.get("image_url")
            small_picture = product.get("image_small_url")
            categories = [
                name.strip().lower().capitalize()
                for name in product["categories"].split(",")
            ]

            selected_nutriments = [
                "energy_100g",
                "sugars_100g",
                "fat_100g",
                "salt_100g",
            ]

            nutriments_dict = {}

            for nutriment in selected_nutriments:
                nutriment_value = product.get("nutriments").get(nutriment)
                if isinstance(nutriment_value, float) is True:
                    value = nutriment_value
                else:
                    value = 0
                nutriments_dict[nutriment] = value

            product_instance = Product(
                name=name,
                brand=brands,
                barcode=barcode,
                score=grade,
                url=url,
                image_url=picture,
                small_image_url=small_picture,
                kcal_100g=nutriments_dict.get("energy_100g"),
                sugar_100g=nutriments_dict.get("sugars_100g"),
                salt_100g=nutriments_dict.get("salt_100g"),
                fat_100g=nutriments_dict.get("fat_100g"),
            )

            try:
                product_instance.save()

                saved_categories = []
                for category in categories:
                    category_instance = Category(name=category)
                    if category not in saved_categories:
                        saved_categories.append(category)
                        try:
                            category_instance.save()
                        except IntegrityError:
                            category_instance = Category.objects.get(name=category)

                        # Link products to categories
                        product_instance.categories.add(category_instance)
                        product_instance.save()
            except IntegrityError:
                continue

        print("😎 -> LA BASE DE DONNÉES EST COMPLÉTÉE ! <- 😎")