Beispiel #1
0
 def _get_polymorphic_type_str(self):
     # If we've already computed it once, let's not do it again.
     if hasattr(self, "_product_type"):
         return self._product_type
     product_type = 'product'
     for pt in get_product_types():
         try:
             type_attr = attrgetter(pt.lower())
             attr_value = type_attr(self)
             if attr_value is not None:
                 product_type = pt.lower()
                 break
         except models.ObjectDoesNotExist:
             pass
     self._product_type = product_type
     return self._product_type
Beispiel #2
0
from django import forms
from django.shortcuts import render_to_response
from django.template import RequestContext as Context
from django.contrib.formtools.wizard import FormWizard
from django.contrib.contenttypes.models import ContentType
from django.db.models import Q
from django.forms.formsets import formset_factory

import settings as cart_settings
from utils import get_product_types
from models import Order
import helpers
    
product_type_queryset = ContentType.objects.filter(
    reduce(Q.__or__, [Q(app_label=cls._meta.app_label, model=cls._meta.module_name) for cls in get_product_types()])
) if get_product_types() else ContentType.objects.none()



class AddToCartForm(forms.Form):
    """A generic form for adding a product to a cart - should post to 
       cart.views.add"""
       
    quantity = forms.IntegerField(min_value=1, initial=1)
    
    def get_options(self):
        options = {}
        for field in self.cleaned_data:
            if field not in ['quantity']:
                options[field] = self.cleaned_data[field]
Beispiel #3
0
from django.shortcuts import render_to_response
from django.template import RequestContext as Context
from django.contrib.formtools.wizard import FormWizard
from django.contrib.contenttypes.models import ContentType
from django.db.models import Q
from django.forms.formsets import formset_factory

import settings as cart_settings
from utils import get_order_detail_class, OrderDetailNotAvailable, get_product_types
from api import Cart
from models import Order

product_type_queryset = ContentType.objects.filter(
    reduce(Q.__or__, [
        Q(app_label=cls._meta.app_label, model=cls._meta.module_name)
        for cls in get_product_types()
    ])) if get_product_types() else ContentType.objects.none()


class AddToCartForm(forms.Form):
    """A generic form for adding a product to a cart - should post to 
       cart.views.add"""
    product_type = forms.ModelChoiceField(queryset=product_type_queryset,
                                          widget=forms.widgets.HiddenInput())
    product_id = forms.IntegerField(min_value=1,
                                    widget=forms.widgets.HiddenInput())
    quantity = forms.IntegerField(min_value=1, initial=1)

    def clean_product_id(self):
        if self.get_product():
            return self.cleaned_data['product_id']