registrasion/forms.py
def ProductsForm(category, products):
    ''' Produces an appropriate _ProductsForm subclass for the given render
    type. '''

    # Each Category.RENDER_TYPE value has a subclass here.
    cat = inventory.Category
    RENDER_TYPES = {
        cat.RENDER_TYPE_QUANTITY: _QuantityBoxProductsForm,
        cat.RENDER_TYPE_RADIO: _RadioButtonProductsForm,
        cat.RENDER_TYPE_ITEM_QUANTITY: _ItemQuantityProductsForm,
        cat.RENDER_TYPE_CHECKBOX: _CheckboxProductsForm,
    }

    # Produce a subclass of _ProductsForm which we can alter the base_fields on
    class ProductsForm(RENDER_TYPES[category.render_type]):
        pass

    products = list(products)
    products.sort(key=lambda prod: prod.order)

    ProductsForm.set_fields(category, products)

    if category.render_type == inventory.Category.RENDER_TYPE_ITEM_QUANTITY:
        ProductsForm = forms.formset_factory(
            ProductsForm,
            formset=_ItemQuantityProductsFormSet,
        )

    return ProductsForm
def ProductsForm(category, products):
    ''' Produces an appropriate _ProductsForm subclass for the given render
    type. '''

    # Each Category.RENDER_TYPE value has a subclass here.
    cat = inventory.Category
    RENDER_TYPES = {
        cat.RENDER_TYPE_QUANTITY: _QuantityBoxProductsForm,
        cat.RENDER_TYPE_RADIO: _RadioButtonProductsForm,
        cat.RENDER_TYPE_ITEM_QUANTITY: _ItemQuantityProductsForm,
        cat.RENDER_TYPE_CHECKBOX: _CheckboxProductsForm,
    }

    # Produce a subclass of _ProductsForm which we can alter the base_fields on
    class ProductsForm(RENDER_TYPES[category.render_type]):
        pass

    products = list(products)
    products.sort(key=lambda prod: prod.order)

    ProductsForm.set_fields(category, products)

    if category.render_type == inventory.Category.RENDER_TYPE_ITEM_QUANTITY:
        ProductsForm = forms.formset_factory(
            ProductsForm,
            formset=_ItemQuantityProductsFormSet,
        )

    return ProductsForm
def ProductsForm ( category , products ) : # Each Category.RENDER_TYPE value has a subclass here. cat = inventory . Category RENDER_TYPES = { cat . RENDER_TYPE_QUANTITY : _QuantityBoxProductsForm , cat . RENDER_TYPE_RADIO : _RadioButtonProductsForm , cat . RENDER_TYPE_ITEM_QUANTITY : _ItemQuantityProductsForm , cat . RENDER_TYPE_CHECKBOX : _CheckboxProductsForm , } # Produce a subclass of _ProductsForm which we can alter the base_fields on class ProductsForm ( RENDER_TYPES [ category . render_type ] ) : pass products = list ( products ) products . sort ( key = lambda prod : prod . order ) ProductsForm . set_fields ( category , products ) if category . render_type == inventory . Category . RENDER_TYPE_ITEM_QUANTITY : ProductsForm = forms . formset_factory ( ProductsForm , formset = _ItemQuantityProductsFormSet , ) return ProductsForm
Produces an appropriate _ProductsForm subclass for the given render
    type.
Produces an appropriate _ProductsForm subclass for the given render type .