shuup.admin.modules.products.views package

Submodules

shuup.admin.modules.products.views.copy module

class shuup.admin.modules.products.views.copy.ProductCopyView(**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 ShopProduct

context_object_name = 'product'
product_listing_names = ['products']
get_queryset()[source]
get_listing_product_kinds_values()[source]
get_success_url(copied_shop_product: shuup.core.models.ShopProduct)[source]
get(request, *args, **kwargs)[source]

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 ShopProduct

context_object_name = 'product'
product_listing_names = ['products']
get_queryset()[source]
get_listing_product_kinds_values()[source]
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_group)[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_form_defs()[source]
form_valid(form)[source]
get_initial()[source]
has_perm()[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 ShopProduct

context_object_name = 'product'
template_name = 'shuup/admin/products/edit.jinja'
base_form_part_classes = []
form_part_class_provide_key = 'admin_product_form_part'
add_form_errors_as_messages = True
product_listing_names = ['products']
get_listing_product_kinds_values()[source]
get_object(queryset=None)[source]
form_valid(form)[source]
get_toolbar()[source]
get_queryset()[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')
save(commit=True)[source]
base_fields = OrderedDict([('product2', <django.forms.models.ModelChoiceField object>), ('weight', <django.forms.fields.IntegerField object>), ('type', <enumfields.forms.EnumChoiceField object>)])
declared_fields = OrderedDict()
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')
pre_master_save(instance)[source]
base_fields = OrderedDict([('shops', <django.forms.models.ModelMultipleChoiceField object>), ('kind', <enumfields.forms.EnumChoiceField object>), ('file', <filer.fields.file.AdminFileFormField object>), ('external_url', <django.forms.fields.URLField object>), ('ordering', <django.forms.fields.IntegerField object>), ('enabled', <django.forms.fields.BooleanField object>), ('public', <django.forms.fields.BooleanField object>), ('purchased', <django.forms.fields.BooleanField object>), ('title', <django.forms.fields.CharField object>), ('description', <django.forms.fields.CharField object>)])
declared_fields = OrderedDict([('title', <django.forms.fields.CharField object>), ('description', <django.forms.fields.CharField object>)])
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_object(queryset=None)[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 = 'Clear package'
confirm_text = 'Are you sure? This will remove all products from the package.'
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.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

product_listing_names = ['products']
default_columns = [<Column: Primary Image> primary_image, <Column: Name> product_name, <Column: SKU> product_sku, <Column: Barcode> product_barcode, <Column: Mode> product_mode, <Column: Primary Category> primary_category, <Column: Categories> categories]
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:ExportProductsCSVAction', 'shuup.admin.modules.products.mass_actions:EditProductAttributesAction']
toolbar_buttons_provider_key = 'product_list_toolbar_provider'
mass_actions_provider_key = 'product_list_mass_actions_provider'
format_categories(instance)[source]
format_suppliers(instance)[source]
get_columns()[source]
get_primary_image(instance)[source]
get_listing_product_kinds_values()[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, field_order=None, use_required_attribute=None, renderer=None)[source]

Bases: django.forms.forms.Form

base_fields = OrderedDict([('name', <django.forms.fields.CharField object>), ('default_price_value', <django.forms.fields.DecimalField object>), ('visibility', <enumfields.forms.EnumChoiceField object>), ('primary_category', <django.forms.models.ModelChoiceField object>), ('categories', <django.forms.models.ModelMultipleChoiceField object>), ('purchasable', <django.forms.fields.BooleanField object>)])
declared_fields = OrderedDict([('name', <django.forms.fields.CharField object>), ('default_price_value', <django.forms.fields.DecimalField object>), ('visibility', <enumfields.forms.EnumChoiceField object>), ('primary_category', <django.forms.models.ModelChoiceField object>), ('categories', <django.forms.models.ModelMultipleChoiceField object>), ('purchasable', <django.forms.fields.BooleanField object>)])
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 = 'Mass Edit: Products'
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 = 1
CHILD_CROSS_SELL = 2
CHILD_PACKAGE = 3
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]
get_listing_product_kinds_values()[source]
get_queryset()[source]
model

alias of ShopProduct

post(request, *args, **kwargs)[source]
product_listing_names = ['products']
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 = []
context_object_name = 'product'
form_part_class_provide_key = 'admin_product_form_part'
form_valid(form)[source]
get_context_data(**kwargs)[source]
get_listing_product_kinds_values()[source]
get_object(queryset=None)[source]
get_queryset()[source]
get_toolbar()[source]
model

alias of ShopProduct

product_listing_names = ['products']
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> product_name, <Column: SKU> product_sku, <Column: Barcode> product_barcode, <Column: Mode> product_mode, <Column: Primary Category> primary_category, <Column: Categories> categories]
format_categories(instance)[source]
format_suppliers(instance)[source]
get_columns()[source]
get_listing_product_kinds_values()[source]
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:ExportProductsCSVAction', 'shuup.admin.modules.products.mass_actions:EditProductAttributesAction']
mass_actions_provider_key = 'product_list_mass_actions_provider'
model

alias of ShopProduct

picotable_class

alias of ProductPicotable

product_listing_names = ['products']
related_objects = [('product', 'shuup.core.models:Product')]
toolbar_buttons_provider_key = 'product_list_toolbar_provider'
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.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]
get_object(queryset=None)[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 = 'Mass Edit: Products'
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]