コード例 #1
0
    def test_find_products_find_a_product(self):
        product_manager = ProductManager()
        products, product = product_manager.find_products("nutella-ferrero")

        self.assertEqual(len(products), 1)
        self.assertEqual(products[0], self.product_b)
        self.assertEqual(product, self.product_a)
コード例 #2
0
ファイル: views.py プロジェクト: phpmentor/P11_pb
def save(request):
    """Save the product into favorite."""
    if request.method == "POST":
        data = request.POST
        ProductManager.save_product(request, data)
        favs = ProductManager.get_fav(request)
        return render(request, "pages/myfood.html", {"favorites": favs})
    else:
        raise Http404
コード例 #3
0
ファイル: views.py プロジェクト: phpmentor/P11_pb
def detail(request):
    """Display detail of a selected product."""
    if request.method == "POST":
        data = request.POST
        product_detail = ProductManager.get_detail(data)
        return render(request, "pages/detail.html",
                      {"product": product_detail})
    else:
        raise Http404
コード例 #4
0
def save(request):
    """Save the product into favorite."""
    if request.method == "POST":
        data = request.POST
        if not request.user.is_authenticated:
            cart = FavoriteCart(request)
            cart.add({
                "product": data["product-searched-id"],
                "substitute": data["substitute-searched-id"],
                "user": "******",
            })
            return redirect_to_login(request,
                                     "pages/myfood.html",
                                     login_url="/accounts/login/")
        ProductManager.save_product(request, data)
        favs = ProductManager.get_fav(request)
        return render(request, "pages/myfood.html", {"favorites": favs})
    else:
        raise Http404
コード例 #5
0
ファイル: models.py プロジェクト: calinvladth/docker-example
class Product(TimeStamp):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=150)
    price = models.FloatField(default=1)
    description_short = models.CharField(max_length=200, null=True, blank=True)
    description_long = models.TextField(null=True, blank=True)
    active = models.BooleanField(default=False)
    shop = models.CharField(max_length=100, blank=True, null=True)

    objects = ProductManager()

    def __str__(self):
        return self.name
コード例 #6
0
 def test_search_from_user_input(self):
     data = {"product": "Indisches Sabji"}
     (
         substitute,
         selected_product,
     ) = ProductManager.search_from_user_input(data)
     self.assertEqual(
         substitute[0]["product_name"],
         self.data["sabji"][1]["product_name_fr"],
     )
     self.assertEqual(
         selected_product[0]["product_name"],
         self.data["sabji"][0]["product_name_fr"],
     )
コード例 #7
0
ファイル: models.py プロジェクト: yannhamdi/projet8
class Products(models.Model):
    """ we class the model for each products"""
    id_code = models.BigIntegerField(primary_key=True)
    food_name = models.CharField(max_length=255)
    nutrition_grade = models.CharField(max_length=1)
    image_nutrition_url = models.URLField(max_length=255)
    image_url = models.URLField(max_length=255)
    food_link = models.URLField(max_length=255)
    category = models.ManyToManyField("Category", related_name="products")

    def __str__(self):
        return self.food_name

    objects = ProductManager()
コード例 #8
0
ファイル: views.py プロジェクト: smtr42/P11_pb
def sub_list(request):
    """Display the list of substitute for one selected product."""
    if request.method == "POST":
        form = SearchForm(request.POST)
        if form.is_valid():
            (
                substitute,
                selected_product,
            ) = ProductManager.search_from_user_input(form.cleaned_data)
            return render(
                request,
                "products/sub_list.html",
                {"product": substitute, "searched": selected_product},
            )
        else:
            print("form is not valid !")
            raise Http404
    else:
        form = SearchForm()
    return render(request, "products/sub_list.html", {"form": form})
コード例 #9
0
class Product(ShortUUIDBase, TimestampBase, StatusBase):
    """ Cart model
    Extends:
        ShortUUIDBase
        TimestampBase
        StatusBase

    """

    category = models.CharField(max_length=2, choices=CATEGORIES.CHOICES)
    price = models.DecimalField(max_digits=15, decimal_places=8, default=D(0))
    title = models.CharField(max_length=255)
    imageUrl = models.CharField(max_length=2048)

    objects = ProductManager()

    class Meta:
        verbose_name = 'Cart'
        verbose_name_plural = 'usersCarts'

    def __unicode__(self):
        """Unicode description."""
        return '%s %s' % (self.id, self.title)
コード例 #10
0
class Product(models.Model):
    title = models.CharField(max_length=120)
    brand = models.CharField(max_length=100, blank=True)
    slug = models.SlugField(blank=True, unique=True)
    type = models.CharField(max_length=50, choices=PRODUCT_TYPES)
    gender = models.CharField(max_length=50,
                              choices=GENDER_CHOICES,
                              blank=True)
    description = RichTextField()
    rating = models.DecimalField(decimal_places=1,
                                 max_digits=5,
                                 default=0.0,
                                 validators=[
                                     MaxValueValidator(limit_value=5.0),
                                     MinValueValidator(limit_value=0.0)
                                 ])
    price = models.DecimalField(decimal_places=2,
                                max_digits=20,
                                default=100.00)
    properties = ChainedManyToManyField(Property,
                                        related_name='products',
                                        blank=True,
                                        chained_field="type",
                                        chained_model_field="attr__type",
                                        horizontal=True)
    image = models.ImageField(upload_to=upload_image_path,
                              null=True,
                              blank=True)
    attributes = ChainedManyToManyField(
        ProductAttribute,
        related_name='products',
        blank=True,
        chained_field="type",
        chained_model_field="attr__type",
        horizontal=True,
    )
    featured = models.BooleanField(default=False)
    active = models.BooleanField(default=True)
    timestamp = models.DateTimeField(auto_now_add=True)
    tags = models.ManyToManyField(Tag, related_name='products', blank=True)

    objects = ProductManager()

    # def get_absolute_url(self):
    #     return reverse("categories:" + str(self.type) + "_detail", kwargs={"slug": self.slug})

    def __str__(self):
        return self.title

    def __unicode__(self):
        return self.title

    def url(self):
        return "/products/" + str(self.type) + "/" + str(self.slug) + "/"

    def product_properties(self):
        product_properties = ", ".join(
            [prop.attr.name for prop in self.properties.all()])
        if product_properties == "":
            return "-------"
        else:
            return product_properties

    def product_attributes(self):
        product_attrs = ", ".join(
            [attribute.attr.name for attribute in self.attributes.all()])
        if product_attrs == "":
            return "-------"
        else:
            return product_attrs

    def calculate_rating(self):
        rating = self.reviews.all().aggregate(
            Avg('rating'))['rating__avg'] or 0.0
        return rating

    @property
    def name(self):
        return self.title
コード例 #11
0
ファイル: views.py プロジェクト: phpmentor/P11_pb
def fav(request):
    """Display favorites saved by user."""
    favs = ProductManager.get_fav(request)
    return render(request, "pages/myfood.html", {"favorites": favs})
コード例 #12
0
    def test_find_product_find_no_product(self):
        product_manager = ProductManager()
        products, product = product_manager.find_products("gonuts-dailylife")

        self.assertEqual(len(products), 0)
        self.assertEqual(product, self.product_b)