shuup.admin.modules.products.views package

Submodules

shuup.admin.modules.products.views.delete module

class shuup.admin.modules.products.views.delete.ProductDeleteView(**kwargs)[source]

Bases: django.views.generic.detail.DetailView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

model

alias of Product

context_object_name = 'product'
get(request, *args, **kwargs)[source]
post(request, *args, **kwargs)[source]

shuup.admin.modules.products.views.edit module

class shuup.admin.modules.products.views.edit.ProductBaseFormPart(request, object=None)[source]

Bases: shuup.admin.form_part.FormPart

priority = -1000
get_form_defs()[source]
form_valid(form)[source]
get_sku()[source]
get_initial()[source]
class shuup.admin.modules.products.views.edit.ShopProductFormPart(request, object=None)[source]

Bases: shuup.admin.form_part.FormPart

priority = -900
get_shop_instance(shop)[source]
get_form_defs()[source]
form_valid(form)[source]
get_initial()[source]
class shuup.admin.modules.products.views.edit.ProductAttributeFormPart(request, object=None)[source]

Bases: shuup.admin.form_part.FormPart

priority = -800
get_form_defs()[source]
form_valid(form)[source]
class shuup.admin.modules.products.views.edit.BaseProductMediaFormPart(request, object=None)[source]

Bases: shuup.admin.form_part.FormPart

get_form_defs()[source]
form_valid(form)[source]
class shuup.admin.modules.products.views.edit.ProductMediaFormPart(request, object=None)[source]

Bases: shuup.admin.modules.products.views.edit.BaseProductMediaFormPart

name = 'media'
priority = -700
formset

alias of ProductMediaFormSet

class shuup.admin.modules.products.views.edit.ProductImageMediaFormPart(request, object=None)[source]

Bases: shuup.admin.modules.products.views.edit.BaseProductMediaFormPart

name = 'images'
priority = -600
formset

alias of ProductImageMediaFormSet

class shuup.admin.modules.products.views.edit.ProductEditView(**kwargs)[source]

Bases: shuup.admin.form_part.SaveFormPartsMixin, shuup.admin.form_part.FormPartsViewMixin, shuup.admin.utils.views.CreateOrUpdateView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

model

alias of Product

context_object_name = 'product'
template_name = 'shuup/admin/products/edit.jinja'
base_form_part_classes = [<class 'shuup.admin.modules.products.views.edit.ProductBaseFormPart'>, <class 'shuup.admin.modules.products.views.edit.ShopProductFormPart'>, <class 'shuup.admin.modules.products.views.edit.ProductAttributeFormPart'>, <class 'shuup.admin.modules.products.views.edit.ProductImageMediaFormPart'>, <class 'shuup.admin.modules.products.views.edit.ProductMediaFormPart'>]
form_part_class_provide_key = 'admin_product_form_part'
add_form_errors_as_messages = True
product_id = None
get_object(queryset=None)[source]
form_valid(form)[source]
get_toolbar()[source]
get_context_data(**kwargs)[source]

shuup.admin.modules.products.views.edit_cross_sell module

class shuup.admin.modules.products.views.edit_cross_sell.ProductCrossSellForm(**kwargs)[source]

Bases: django.forms.models.ModelForm

class Meta[source]

Bases: object

model

alias of ProductCrossSell

fields = ('product2', 'weight', 'type')
ProductCrossSellForm.save(commit=True)[source]
ProductCrossSellForm.base_fields = OrderedDict([('product2', <django.forms.models.ModelChoiceField object at 0x7fabcdbe6710>), ('weight', <django.forms.fields.IntegerField object at 0x7fabcd2e5e10>), ('type', <enumfields.forms.EnumChoiceField object at 0x7fabcd2e57b8>)])
ProductCrossSellForm.declared_fields = OrderedDict()
ProductCrossSellForm.media
class shuup.admin.modules.products.views.edit_cross_sell.ProductCrossSellFormSet(*args, **kwargs)[source]

Bases: django.forms.models.BaseModelFormSet

validate_min = False
min_num = 0
validate_max = False
max_num = 1000
absolute_max = 1000
model

alias of ProductCrossSell

can_delete = True
can_order = False
extra = 5
form(**kwargs)[source]
class shuup.admin.modules.products.views.edit_cross_sell.ProductCrossSellEditView(**kwargs)[source]

Bases: django.views.generic.edit.UpdateView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

model

alias of Product

template_name = 'shuup/admin/products/edit_cross_sell.jinja'
context_object_name = 'product'
form_class

alias of ProductCrossSellFormSet

get_breadcrumb_parents()[source]
get_context_data(**kwargs)[source]
get_form_kwargs()[source]
form_valid(form)[source]

shuup.admin.modules.products.views.edit_media module

class shuup.admin.modules.products.views.edit_media.ProductMediaForm(**kwargs)[source]

Bases: shuup.utils.multilanguage_model_form.MultiLanguageModelForm

class Meta[source]

Bases: object

model

alias of ProductMedia

fields = ('shops', 'kind', 'file', 'external_url', 'ordering', 'enabled', 'public', 'purchased', 'title', 'description')
ProductMediaForm.pre_master_save(instance)[source]
ProductMediaForm.base_fields = OrderedDict([('shops', <django.forms.models.ModelMultipleChoiceField object at 0x7fabcd7a3278>), ('kind', <enumfields.forms.EnumChoiceField object at 0x7fabcd7a3d68>), ('file', <filer.fields.file.AdminFileFormField object at 0x7fabcd7a3b70>), ('external_url', <django.forms.fields.URLField object at 0x7fabcdc73908>), ('ordering', <django.forms.fields.IntegerField object at 0x7fabcd6cd470>), ('enabled', <django.forms.fields.BooleanField object at 0x7fabcd6cde80>), ('public', <django.forms.fields.BooleanField object at 0x7fabcd6cd320>), ('purchased', <django.forms.fields.BooleanField object at 0x7fabcd6cdba8>), ('title', <django.forms.fields.CharField object at 0x7fabcd7646d8>), ('description', <django.forms.fields.CharField object at 0x7fabcdd03d30>)])
ProductMediaForm.declared_fields = OrderedDict([('title', <django.forms.fields.CharField object at 0x7fabcd7646d8>), ('description', <django.forms.fields.CharField object at 0x7fabcdd03d30>)])
ProductMediaForm.media
class shuup.admin.modules.products.views.edit_media.ProductMediaFormSet(*args, **kwargs)[source]

Bases: django.forms.models.BaseModelFormSet

validate_min = False
min_num = 0
validate_max = False
max_num = 1000
absolute_max = 1000
model

alias of ProductMedia

can_delete = True
can_order = False
extra = 5
form(**kwargs)[source]
class shuup.admin.modules.products.views.edit_media.ProductMediaEditView(**kwargs)[source]

Bases: django.views.generic.edit.UpdateView

A view for editing all the media for a product, including attachments that are not just images.

Currently sort of utilitarian and confusing.

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

model

alias of Product

template_name = 'shuup/admin/products/edit_media.jinja'
context_object_name = 'product'
form_class

alias of ProductMediaFormSet

get_breadcrumb_parents()[source]
get_context_data(**kwargs)[source]
get_form_kwargs()[source]
form_valid(form)[source]
class shuup.admin.modules.products.views.edit_media.ProductMediaBulkAdderView(**kwargs)[source]

Bases: django.views.generic.base.View

Adds media in bulk to a pre-existing product.

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

post(*args, **kwargs)[source]

shuup.admin.modules.products.views.edit_package module

class shuup.admin.modules.products.views.edit_package.ProductChildrenFormPart(request, object=None)[source]

Bases: shuup.admin.modules.products.views.edit_parent.ProductChildrenBaseFormPart

invalid_modes = [<ProductMode.VARIATION_CHILD: 4>, <ProductMode.VARIABLE_VARIATION_PARENT: 3>, <ProductMode.SIMPLE_VARIATION_PARENT: 2>]
priority = 1
get_form_defs()[source]
class shuup.admin.modules.products.views.edit_package.ProductPackageViewToolbar(view)[source]

Bases: shuup.admin.modules.products.views.edit_parent.ProductParentBaseToolbar

button_text = <django.utils.functional.lazy.<locals>.__proxy__ object>
confirm_text = <django.utils.functional.lazy.<locals>.__proxy__ object>
class shuup.admin.modules.products.views.edit_package.ProductPackageView(**kwargs)[source]

Bases: shuup.admin.modules.products.views.edit_parent.ProductParentBaseView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

template_name = 'shuup/admin/products/package/edit.jinja'
form_part_classes = [<class 'shuup.admin.modules.products.views.edit_package.ProductChildrenFormPart'>]
toolbar_class

alias of ProductPackageViewToolbar

dispatch(request, *args, **kwargs)[source]
get_context_data(**kwargs)[source]
dispatch_command(request, command)[source]

shuup.admin.modules.products.views.edit_parent module

class shuup.admin.modules.products.views.edit_parent.ProductChildrenBaseFormPart(request, object=None)[source]

Bases: shuup.admin.form_part.FormPart

invalid_modes = []
priority = 0
form_name = None
get_form_defs(form, template_name)[source]
form_valid(form)[source]
class shuup.admin.modules.products.views.edit_parent.ProductParentBaseToolbar(view)[source]

Bases: shuup.admin.toolbar.Toolbar

class shuup.admin.modules.products.views.edit_parent.ProductParentBaseView(**kwargs)[source]

Bases: shuup.admin.form_part.FormPartsViewMixin, django.views.generic.edit.UpdateView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

model

alias of Product

context_object_name = 'product'
form_class

alias of Form

form_part_classes = []
toolbar_class = None
dispatch(request, *args, **kwargs)[source]
get_breadcrumb_parents()[source]
post(request, *args, **kwargs)[source]
get_form_part_classes()[source]
get_context_data(**kwargs)[source]
form_valid(form)[source]
get_success_url()[source]
dispatch_command(request, command)[source]

shuup.admin.modules.products.views.edit_variation module

class shuup.admin.modules.products.views.edit_variation.VariationChildrenFormPart(request, object=None)[source]

Bases: shuup.admin.modules.products.views.edit_parent.ProductChildrenBaseFormPart

invalid_modes = [<ProductMode.VARIATION_CHILD: 4>, <ProductMode.PACKAGE_PARENT: 1>, <ProductMode.SUBSCRIPTION: 5>]
priority = 0
get_form_defs()[source]
class shuup.admin.modules.products.views.edit_variation.VariationVariablesFormPart(request, object=None)[source]

Bases: shuup.admin.form_part.FormPart

form_def_name = 'variables'
priority = 1
get_form_defs()[source]
form_valid(form)[source]
class shuup.admin.modules.products.views.edit_variation.ProductVariationViewToolbar(view)[source]

Bases: shuup.admin.modules.products.views.edit_parent.ProductParentBaseToolbar

class shuup.admin.modules.products.views.edit_variation.ProductVariationView(**kwargs)[source]

Bases: shuup.admin.modules.products.views.edit_parent.ProductParentBaseView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

template_name = 'shuup/admin/products/variation/edit.jinja'
form_part_classes = [<class 'shuup.admin.modules.products.views.edit_variation.VariationChildrenFormPart'>, <class 'shuup.admin.modules.products.views.edit_variation.VariationVariablesFormPart'>]
toolbar_class

alias of ProductVariationViewToolbar

dispatch(request, *args, **kwargs)[source]
get_context_data(**kwargs)[source]
dispatch_command(request, command)[source]

shuup.admin.modules.products.views.list module

class shuup.admin.modules.products.views.list.ProductPicotable(request, columns, mass_actions, queryset, context)[source]

Bases: shuup.admin.utils.picotable.Picotable

process_item(object)[source]
class shuup.admin.modules.products.views.list.ProductListView[source]

Bases: shuup.admin.utils.views.PicotableListView

model

alias of ShopProduct

picotable_class

alias of ProductPicotable

default_columns = [<Column: Primary Image> primary_image, <Column: Name> name, <Column: SKU> sku, <Column: Barcode> barcode, <Column: Type> type, <Column: Mode> mode]
related_objects = [('product', 'shuup.core.models:Product')]
mass_actions = ['shuup.admin.modules.products.mass_actions:VisibleMassAction', 'shuup.admin.modules.products.mass_actions:InvisibleMassAction', 'shuup.admin.modules.products.mass_actions:FileResponseAction', 'shuup.admin.modules.products.mass_actions:EditProductAttributesAction']
get_primary_image(instance)[source]
get_queryset()[source]
get_object_abstract(instance, item)[source]

shuup.admin.modules.products.views.mass_edit module

class shuup.admin.modules.products.views.mass_edit.MassEditForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False)[source]

Bases: django.forms.forms.Form

base_fields = OrderedDict([('name', <django.forms.fields.CharField object at 0x7fabcd6bccc0>), ('default_price_value', <django.forms.fields.DecimalField object at 0x7fabcd6d9208>), ('visibility', <enumfields.forms.EnumChoiceField object at 0x7fabcd6d9ef0>), ('primary_category', <django.forms.models.ModelChoiceField object at 0x7fabce23dc88>), ('categories', <django.forms.models.ModelMultipleChoiceField object at 0x7fabcd65fa20>), ('purchasable', <django.forms.fields.BooleanField object at 0x7fabcd65ff28>)])
declared_fields = OrderedDict([('name', <django.forms.fields.CharField object at 0x7fabcd6bccc0>), ('default_price_value', <django.forms.fields.DecimalField object at 0x7fabcd6d9208>), ('visibility', <enumfields.forms.EnumChoiceField object at 0x7fabcd6d9ef0>), ('primary_category', <django.forms.models.ModelChoiceField object at 0x7fabce23dc88>), ('categories', <django.forms.models.ModelMultipleChoiceField object at 0x7fabcd65fa20>), ('purchasable', <django.forms.fields.BooleanField object at 0x7fabcd65ff28>)])
media
class shuup.admin.modules.products.views.mass_edit.ProductMassEditView(**kwargs)[source]

Bases: shuup.admin.utils.views.MassEditMixin, django.views.generic.edit.FormView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

title = <django.utils.functional.lazy.<locals>.__proxy__ object>
form_class

alias of MassEditForm

form_valid(form)[source]

shuup.admin.modules.products.views.toolbars module

class shuup.admin.modules.products.views.toolbars.ProductActionCategory[source]

Bases: enumfields.enums.Enum

An enumeration.

MAIN = <ProductActionCategory.MAIN: 1>
CHILD_CROSS_SELL = <ProductActionCategory.CHILD_CROSS_SELL: 2>
CHILD_PACKAGE = <ProductActionCategory.CHILD_PACKAGE: 3>
CHILD_VARIATION = <ProductActionCategory.CHILD_VARIATION: 4>
CHILD_OTHER = <ProductActionCategory.CHILD_OTHER: 5>
class shuup.admin.modules.products.views.toolbars.EditProductToolbar(view)[source]

Bases: shuup.admin.toolbar.Toolbar

Module contents

class shuup.admin.modules.products.views.ProductCrossSellEditView(**kwargs)[source]

Bases: django.views.generic.edit.UpdateView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

context_object_name = 'product'
form_class

alias of ProductCrossSellFormSet

form_valid(form)[source]
get_breadcrumb_parents()[source]
get_context_data(**kwargs)[source]
get_form_kwargs()[source]
model

alias of Product

template_name = 'shuup/admin/products/edit_cross_sell.jinja'
class shuup.admin.modules.products.views.ProductDeleteView(**kwargs)[source]

Bases: django.views.generic.detail.DetailView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

context_object_name = 'product'
get(request, *args, **kwargs)[source]
model

alias of Product

post(request, *args, **kwargs)[source]
class shuup.admin.modules.products.views.ProductEditView(**kwargs)[source]

Bases: shuup.admin.form_part.SaveFormPartsMixin, shuup.admin.form_part.FormPartsViewMixin, shuup.admin.utils.views.CreateOrUpdateView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

add_form_errors_as_messages = True
base_form_part_classes = [<class 'shuup.admin.modules.products.views.edit.ProductBaseFormPart'>, <class 'shuup.admin.modules.products.views.edit.ShopProductFormPart'>, <class 'shuup.admin.modules.products.views.edit.ProductAttributeFormPart'>, <class 'shuup.admin.modules.products.views.edit.ProductImageMediaFormPart'>, <class 'shuup.admin.modules.products.views.edit.ProductMediaFormPart'>]
context_object_name = 'product'
form_part_class_provide_key = 'admin_product_form_part'
form_valid(form)[source]
get_context_data(**kwargs)[source]
get_object(queryset=None)[source]
get_toolbar()[source]
model

alias of Product

product_id = None
template_name = 'shuup/admin/products/edit.jinja'
class shuup.admin.modules.products.views.ProductListView[source]

Bases: shuup.admin.utils.views.PicotableListView

default_columns = [<Column: Primary Image> primary_image, <Column: Name> name, <Column: SKU> sku, <Column: Barcode> barcode, <Column: Type> type, <Column: Mode> mode]
get_object_abstract(instance, item)[source]
get_primary_image(instance)[source]
get_queryset()[source]
mass_actions = ['shuup.admin.modules.products.mass_actions:VisibleMassAction', 'shuup.admin.modules.products.mass_actions:InvisibleMassAction', 'shuup.admin.modules.products.mass_actions:FileResponseAction', 'shuup.admin.modules.products.mass_actions:EditProductAttributesAction']
model

alias of ShopProduct

picotable_class

alias of ProductPicotable

related_objects = [('product', 'shuup.core.models:Product')]
class shuup.admin.modules.products.views.ProductPackageView(**kwargs)[source]

Bases: shuup.admin.modules.products.views.edit_parent.ProductParentBaseView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

dispatch(request, *args, **kwargs)[source]
dispatch_command(request, command)[source]
form_part_classes = [<class 'shuup.admin.modules.products.views.edit_package.ProductChildrenFormPart'>]
get_context_data(**kwargs)[source]
template_name = 'shuup/admin/products/package/edit.jinja'
toolbar_class

alias of ProductPackageViewToolbar

class shuup.admin.modules.products.views.ProductVariationView(**kwargs)[source]

Bases: shuup.admin.modules.products.views.edit_parent.ProductParentBaseView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

dispatch(request, *args, **kwargs)[source]
dispatch_command(request, command)[source]
form_part_classes = [<class 'shuup.admin.modules.products.views.edit_variation.VariationChildrenFormPart'>, <class 'shuup.admin.modules.products.views.edit_variation.VariationVariablesFormPart'>]
get_context_data(**kwargs)[source]
template_name = 'shuup/admin/products/variation/edit.jinja'
toolbar_class

alias of ProductVariationViewToolbar

class shuup.admin.modules.products.views.ProductMediaEditView(**kwargs)[source]

Bases: django.views.generic.edit.UpdateView

A view for editing all the media for a product, including attachments that are not just images.

Currently sort of utilitarian and confusing.

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

context_object_name = 'product'
form_class

alias of ProductMediaFormSet

form_valid(form)[source]
get_breadcrumb_parents()[source]
get_context_data(**kwargs)[source]
get_form_kwargs()[source]
model

alias of Product

template_name = 'shuup/admin/products/edit_media.jinja'
class shuup.admin.modules.products.views.ProductMassEditView(**kwargs)[source]

Bases: shuup.admin.utils.views.MassEditMixin, django.views.generic.edit.FormView

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

form_class

alias of MassEditForm

form_valid(form)[source]
title = <django.utils.functional.lazy.<locals>.__proxy__ object>
class shuup.admin.modules.products.views.ProductMediaBulkAdderView(**kwargs)[source]

Bases: django.views.generic.base.View

Adds media in bulk to a pre-existing product.

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

post(*args, **kwargs)[source]