shoop.admin.modules.products.views package

Submodules

shoop.admin.modules.products.views.delete module

class shoop.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]

shoop.admin.modules.products.views.edit module

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

Bases: shoop.admin.form_part.FormPart

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

Bases: shoop.admin.form_part.FormPart

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

Bases: shoop.admin.form_part.FormPart

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

Bases: shoop.admin.form_part.FormPart

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

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

name = 'media'
priority = -700
formset

alias of ProductMediaFormSet

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

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

name = 'images'
priority = -600
formset

alias of ProductImageMediaFormSet

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

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

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

model

alias of Product

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

shoop.admin.modules.products.views.edit_cross_sell module

class shoop.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 0x7f15c5209ef0>), ('weight', <django.forms.fields.IntegerField object at 0x7f15c51daac8>), ('type', <enumfields.forms.EnumChoiceField object at 0x7f15c51da780>)])
ProductCrossSellForm.declared_fields = OrderedDict()
ProductCrossSellForm.media
class shoop.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 ProductMedia

can_delete = True
can_order = False
extra = 5
form(**kwargs)[source]
class shoop.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 = 'shoop/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]

shoop.admin.modules.products.views.edit_media module

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

Bases: shoop.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 0x7f15c5179860>), ('kind', <enumfields.forms.EnumChoiceField object at 0x7f15c5179748>), ('file', <filer.fields.file.AdminFileFormField object at 0x7f15c5179d30>), ('external_url', <django.forms.fields.URLField object at 0x7f15c5179278>), ('ordering', <django.forms.fields.IntegerField object at 0x7f15c5179ba8>), ('enabled', <django.forms.fields.BooleanField object at 0x7f15c5179940>), ('public', <django.forms.fields.BooleanField object at 0x7f15c5179048>), ('purchased', <django.forms.fields.BooleanField object at 0x7f15c51849e8>), ('title', <django.forms.fields.CharField object at 0x7f15c5179b70>), ('description', <django.forms.fields.CharField object at 0x7f15c5179710>)])
ProductMediaForm.declared_fields = OrderedDict([('title', <django.forms.fields.CharField object at 0x7f15c5179b70>), ('description', <django.forms.fields.CharField object at 0x7f15c5179710>)])
ProductMediaForm.media
class shoop.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 shoop.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 = 'shoop/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]

shoop.admin.modules.products.views.forms module

class shoop.admin.modules.products.views.forms.ProductBaseForm(**kwargs)[source]

Bases: shoop.utils.multilanguage_model_form.MultiLanguageModelForm

class Meta[source]

Bases: object

model

alias of Product

fields = ('accounting_identifier', 'barcode', 'category', 'cost_center', 'depth', 'gross_weight', 'gtin', 'height', 'manufacturer', 'net_weight', 'profit_center', 'sales_unit', 'shipping_mode', 'sku', 'tax_class', 'type', 'width', 'description', 'keywords', 'name', 'status_text', 'variation_name')
widgets = {'keywords': <django.forms.widgets.TextInput object at 0x7f15c5da9048>}
ProductBaseForm.base_fields = OrderedDict([('accounting_identifier', <django.forms.fields.CharField object at 0x7f15c54492b0>), ('barcode', <django.forms.fields.CharField object at 0x7f15c54fd438>), ('category', <django.forms.models.ModelChoiceField object at 0x7f15c5449518>), ('cost_center', <django.forms.fields.CharField object at 0x7f15c5449748>), ('depth', <django.forms.fields.DecimalField object at 0x7f15c5507ef0>), ('gross_weight', <django.forms.fields.DecimalField object at 0x7f15c54a9668>), ('gtin', <django.forms.fields.CharField object at 0x7f15c54fd080>), ('height', <django.forms.fields.DecimalField object at 0x7f15c5507198>), ('manufacturer', <django.forms.models.ModelChoiceField object at 0x7f15c54a9ac8>), ('net_weight', <django.forms.fields.DecimalField object at 0x7f15c54a9748>), ('profit_center', <django.forms.fields.CharField object at 0x7f15c5449b00>), ('sales_unit', <django.forms.models.ModelChoiceField object at 0x7f15c54c4ac8>), ('shipping_mode', <enumfields.forms.EnumChoiceField object at 0x7f15c721f898>), ('sku', <django.forms.fields.CharField object at 0x7f15c55110f0>), ('tax_class', <django.forms.models.ModelChoiceField object at 0x7f15c5e35668>), ('type', <django.forms.models.ModelChoiceField object at 0x7f15c5da9828>), ('width', <django.forms.fields.DecimalField object at 0x7f15c50abe80>), ('description', <django.forms.fields.CharField object at 0x7f15c721f550>), ('keywords', <django.forms.fields.CharField object at 0x7f15c721f438>), ('name', <django.forms.fields.CharField object at 0x7f15c721f8d0>), ('status_text', <django.forms.fields.CharField object at 0x7f15c721f2e8>), ('variation_name', <django.forms.fields.CharField object at 0x7f15c721f358>)])
ProductBaseForm.declared_fields = OrderedDict([('name', <django.forms.fields.CharField object at 0x7f15c721f8d0>), ('description', <django.forms.fields.CharField object at 0x7f15c721f550>), ('keywords', <django.forms.fields.CharField object at 0x7f15c721f438>), ('status_text', <django.forms.fields.CharField object at 0x7f15c721f2e8>), ('variation_name', <django.forms.fields.CharField object at 0x7f15c721f358>)])
ProductBaseForm.media
class shoop.admin.modules.products.views.forms.ShopProductForm(**kwargs)[source]

Bases: django.forms.models.ModelForm

class Meta[source]

Bases: object

model

alias of ShopProduct

fields = ('default_price_value', 'suppliers', 'visible', 'listed', 'purchasable', 'searchable', 'visibility_limit', 'visibility_groups', 'purchase_multiple', 'minimum_purchase_quantity', 'limit_shipping_methods', 'limit_payment_methods', 'shipping_methods', 'payment_methods', 'primary_category', 'categories')
ShopProductForm.clean_minimum_purchase_quantity()[source]
ShopProductForm.base_fields = OrderedDict([('default_price_value', <django.forms.fields.DecimalField object at 0x7f15c60a9668>), ('suppliers', <django.forms.models.ModelMultipleChoiceField object at 0x7f15c54a9048>), ('visible', <django.forms.fields.BooleanField object at 0x7f15c54efa20>), ('listed', <django.forms.fields.BooleanField object at 0x7f15c54ef2b0>), ('purchasable', <django.forms.fields.BooleanField object at 0x7f15c54ef828>), ('searchable', <django.forms.fields.BooleanField object at 0x7f15c515b978>), ('visibility_limit', <enumfields.forms.EnumChoiceField object at 0x7f15c515b940>), ('visibility_groups', <django.forms.models.ModelMultipleChoiceField object at 0x7f15c515b710>), ('purchase_multiple', <django.forms.fields.DecimalField object at 0x7f15c515b358>), ('minimum_purchase_quantity', <django.forms.fields.DecimalField object at 0x7f15c51cdba8>), ('limit_shipping_methods', <django.forms.fields.BooleanField object at 0x7f15c51cd780>), ('limit_payment_methods', <django.forms.fields.BooleanField object at 0x7f15c51cdb70>), ('shipping_methods', <django.forms.models.ModelMultipleChoiceField object at 0x7f15c51cdd68>), ('payment_methods', <django.forms.models.ModelMultipleChoiceField object at 0x7f15c51cde80>), ('primary_category', <django.forms.models.ModelChoiceField object at 0x7f15c51cdda0>), ('categories', <django.forms.models.ModelMultipleChoiceField object at 0x7f15c60a97f0>)])
ShopProductForm.declared_fields = OrderedDict()
ShopProductForm.media
class shoop.admin.modules.products.views.forms.ProductAttributesForm(**kwargs)[source]

Bases: django.forms.forms.Form

save()[source]
base_fields = OrderedDict()
declared_fields = OrderedDict()
media
class shoop.admin.modules.products.views.forms.BaseProductMediaForm(**kwargs)[source]

Bases: shoop.utils.multilanguage_model_form.MultiLanguageModelForm

class Meta[source]

Bases: object

model

alias of ProductMedia

fields = ('file', 'ordering', 'external_url', 'public', 'title', 'description', 'purchased', 'shops', 'kind')
BaseProductMediaForm.get_thumbnail(request)[source]

Get thumbnail url.

If thumbnail creation fails for whatever reason, an error message is displayed for user.

BaseProductMediaForm.pre_master_save(instance)[source]
BaseProductMediaForm.base_fields = OrderedDict([('file', <filer.fields.file.AdminFileFormField object at 0x7f15c51325c0>), ('ordering', <django.forms.fields.IntegerField object at 0x7f15c5132d30>), ('external_url', <django.forms.fields.URLField object at 0x7f15c51322b0>), ('public', <django.forms.fields.BooleanField object at 0x7f15c61463c8>), ('title', <django.forms.fields.CharField object at 0x7f15c5132b38>), ('description', <django.forms.fields.CharField object at 0x7f15c5132358>), ('purchased', <django.forms.fields.BooleanField object at 0x7f15c564dba8>), ('shops', <django.forms.models.ModelMultipleChoiceField object at 0x7f15c51327f0>), ('kind', <enumfields.forms.EnumChoiceField object at 0x7f15c5132438>)])
BaseProductMediaForm.declared_fields = OrderedDict([('title', <django.forms.fields.CharField object at 0x7f15c5132b38>), ('description', <django.forms.fields.CharField object at 0x7f15c5132358>)])
BaseProductMediaForm.media
class shoop.admin.modules.products.views.forms.BaseProductMediaFormSet(*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 = 1
allowed_media_kinds = []
get_queryset()[source]
form(**kwargs)[source]
class shoop.admin.modules.products.views.forms.ProductMediaForm(**kwargs)[source]

Bases: shoop.admin.modules.products.views.forms.BaseProductMediaForm

clean_external_url()[source]
base_fields = OrderedDict([('file', <filer.fields.file.AdminFileFormField object at 0x7f15c542aef0>), ('ordering', <django.forms.fields.IntegerField object at 0x7f15c542a470>), ('external_url', <django.forms.fields.URLField object at 0x7f15c542a6a0>), ('public', <django.forms.fields.BooleanField object at 0x7f15c542a4e0>), ('title', <django.forms.fields.CharField object at 0x7f15c5132b38>), ('description', <django.forms.fields.CharField object at 0x7f15c5132358>), ('purchased', <django.forms.fields.BooleanField object at 0x7f15c542a2e8>), ('shops', <django.forms.models.ModelMultipleChoiceField object at 0x7f15c564df28>), ('kind', <enumfields.forms.EnumChoiceField object at 0x7f15c542af60>)])
declared_fields = OrderedDict([('title', <django.forms.fields.CharField object at 0x7f15c5132b38>), ('description', <django.forms.fields.CharField object at 0x7f15c5132358>)])
media
class shoop.admin.modules.products.views.forms.ProductMediaFormSet(*args, **kwargs)[source]

Bases: shoop.admin.modules.products.views.forms.BaseProductMediaFormSet

form_class

alias of ProductMediaForm

allowed_media_kinds = [<ProductMediaKind.GENERIC_FILE: 1>, <ProductMediaKind.DOCUMENTATION: 3>, <ProductMediaKind.SAMPLE: 4>]
class shoop.admin.modules.products.views.forms.ProductImageMediaForm(**kwargs)[source]

Bases: shoop.admin.modules.products.views.forms.BaseProductMediaForm

clean_file()[source]
save(commit=True)[source]
base_fields = OrderedDict([('file', <filer.fields.file.AdminFileFormField object at 0x7f15c51665c0>), ('ordering', <django.forms.fields.IntegerField object at 0x7f15c5166198>), ('external_url', <django.forms.fields.URLField object at 0x7f15c5166f98>), ('public', <django.forms.fields.BooleanField object at 0x7f15c5166b70>), ('title', <django.forms.fields.CharField object at 0x7f15c5132b38>), ('description', <django.forms.fields.CharField object at 0x7f15c5132358>), ('purchased', <django.forms.fields.BooleanField object at 0x7f15c51660f0>), ('shops', <django.forms.models.ModelMultipleChoiceField object at 0x7f15c5166e80>), ('kind', <enumfields.forms.EnumChoiceField object at 0x7f15c5166358>), ('is_primary', <django.forms.fields.BooleanField object at 0x7f15c542a320>)])
declared_fields = OrderedDict([('title', <django.forms.fields.CharField object at 0x7f15c5132b38>), ('description', <django.forms.fields.CharField object at 0x7f15c5132358>), ('is_primary', <django.forms.fields.BooleanField object at 0x7f15c542a320>)])
media
class shoop.admin.modules.products.views.forms.ProductImageMediaFormSet(*args, **kwargs)[source]

Bases: shoop.admin.modules.products.views.forms.ProductMediaFormSet

allowed_media_kinds = [<ProductMediaKind.IMAGE: 2>]
form_class

alias of ProductImageMediaForm

save(commit=True)[source]

Save the form.

In addition add the first saved image as primary image for the product if none is selected as such.

shoop.admin.modules.products.views.list module

class shoop.admin.modules.products.views.list.ProductListView(**kwargs)[source]

Bases: shoop.admin.utils.views.PicotableListView

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

model

alias of Product

columns = [<shoop.admin.utils.picotable.Column object at 0x7f15c5184320>, <shoop.admin.utils.picotable.Column object at 0x7f15c5184278>, <shoop.admin.utils.picotable.Column object at 0x7f15c51849b0>, <shoop.admin.utils.picotable.Column object at 0x7f15c5184358>, <shoop.admin.utils.picotable.Column object at 0x7f15c5184cc0>]
get_queryset()[source]
get_object_abstract(instance, item)[source]

shoop.admin.modules.products.views.toolbars module

class shoop.admin.modules.products.views.toolbars.EditProductToolbar(view)[source]

Bases: shoop.admin.toolbar.Toolbar

Module contents

class shoop.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 = 'shoop/admin/products/edit_cross_sell.jinja'
class shoop.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 shoop.admin.modules.products.views.ProductEditView(**kwargs)[source]

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

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

base_form_part_classes = [<class 'shoop.admin.modules.products.views.edit.ProductBaseFormPart'>, <class 'shoop.admin.modules.products.views.edit.ShopProductFormPart'>, <class 'shoop.admin.modules.products.views.edit.ProductAttributeFormPart'>, <class 'shoop.admin.modules.products.views.edit.ProductImageMediaFormPart'>, <class 'shoop.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_toolbar()[source]
model

alias of Product

template_name = 'shoop/admin/products/edit.jinja'
class shoop.admin.modules.products.views.ProductListView(**kwargs)[source]

Bases: shoop.admin.utils.views.PicotableListView

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

columns = [<shoop.admin.utils.picotable.Column object at 0x7f15c5184320>, <shoop.admin.utils.picotable.Column object at 0x7f15c5184278>, <shoop.admin.utils.picotable.Column object at 0x7f15c51849b0>, <shoop.admin.utils.picotable.Column object at 0x7f15c5184358>, <shoop.admin.utils.picotable.Column object at 0x7f15c5184cc0>]
get_object_abstract(instance, item)[source]
get_queryset()[source]
model

alias of Product

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

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

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

context_object_name = 'product'
dispatch(request, *args, **kwargs)[source]
dispatch_command(request, command)[source]
form_class

alias of Form

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

alias of Product

post(request, *args, **kwargs)[source]
template_name = 'shoop/admin/products/variation/edit.jinja'
class shoop.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 = 'shoop/admin/products/edit_media.jinja'