shuup.core.utils package¶
Submodules¶
shuup.core.utils.context_cache module¶
-
shuup.core.utils.context_cache.
get_cached_value
(identifier, item, context, **kwargs)[source]¶ Get item from context cache by identifier
Accepts optional kwargs parameter
allow_cache
which will skip fetching the actual cached object. Whenallow_cache
is set to False only cache key for identifier, item, context combination is returned.Parameters: Returns: Cache key and cached value if allowed
Return type: tuple(str, object)
-
shuup.core.utils.context_cache.
set_cached_value
(key, value, timeout=None)[source]¶ Set value to context cache
Parameters: - key – Unique key formed to the context
- value – Value to cache
- timeout (int) – Timeout as seconds
-
shuup.core.utils.context_cache.
bump_cache_for_shop_product
(shop_product)[source]¶ Bump cache for given shop product
Clear cache for shop product, product linked to it and all the children.
Parameters: shop_product (shuup.core.models.ShopProduct) – shop product object
-
shuup.core.utils.context_cache.
bump_cache_for_product
(product, shop=None)[source]¶ Bump cache for product
In case shop is not given all the shop products for the product is bumped.
Parameters: - product (shuup.core.models.Product) – product object
- shop (shuup.core.models.Shop|None) – shop object
-
shuup.core.utils.context_cache.
bump_cache_for_item
(item)[source]¶ Bump cache for given item
Use this only for non product items. For products and shop_products use
bump_cache_for_product
andbump_cache_for_shop_product
for those.Parameters: item – Cached object
-
shuup.core.utils.context_cache.
bump_cache_for_pk
(cls, pk)[source]¶ Bump cache for given class and pk combination
Use this only for non product items. For products and shop_products use
bump_cache_for_product
andbump_cache_for_shop_product
for those.In case you need to use this to product or shop_product make sure you also bump related objects like in
bump_cache_for_shop_product
.Parameters: - cls – Class for cached object
- pk – pk for cached object
-
shuup.core.utils.context_cache.
bump_product_signal_handler
(sender, instance, **kwargs)[source]¶ Signal handler for clearing product cache
Parameters: instance (shuup.core.models.Product) – Shuup product
-
shuup.core.utils.context_cache.
bump_shop_product_signal_handler
(sender, instance, **kwargs)[source]¶ Signal handler for clearing shop product cache
Parameters: instance (shuup.core.models.ShopProduct) – Shuup shop product
shuup.core.utils.db module¶
shuup.core.utils.form_mixins module¶
-
class
shuup.core.utils.form_mixins.
ProtectedFieldsMixin
(**kwargs)[source]¶ Bases:
object
-
change_protect_field_text
= <django.utils.functional.lazy.<locals>.__proxy__ object>¶
-
clean_protected_fields
(cleaned_data)[source]¶ Ignore protected fields (they are set to
disabled
, so they will not be in the form data).As a side effect, this removes the fields from
changed_data
too.Parameters: cleaned_data (dict) – Cleaned data Returns: Cleaned data without protected field data Return type: dict
-
shuup.core.utils.formatters module¶
shuup.core.utils.forms module¶
-
class
shuup.core.utils.forms.
MutableAddressForm
(**kwargs)[source]¶ Bases:
django.forms.models.ModelForm
-
class
Meta
[source]¶ Bases:
object
-
model
¶ alias of
MutableAddress
-
fields
= ('name', 'name_ext', 'phone', 'email', 'street', 'street2', 'postal_code', 'city', 'region', 'region_code', 'country')¶
-
labels
= {'region_code': <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7fabcd7142b0>}¶
-
-
MutableAddressForm.
base_fields
= OrderedDict([('name', <django.forms.fields.CharField object at 0x7fabcd6c1470>), ('name_ext', <django.forms.fields.CharField object at 0x7fabcd6400b8>), ('phone', <django.forms.fields.CharField object at 0x7fabcd6402e8>), ('email', <django.forms.fields.EmailField object at 0x7fabcd6406a0>), ('street', <django.forms.fields.CharField object at 0x7fabcd71da20>), ('street2', <django.forms.fields.CharField object at 0x7fabcd71de80>), ('postal_code', <django.forms.fields.CharField object at 0x7fabcd71d748>), ('city', <django.forms.fields.CharField object at 0x7fabcd6e4198>), ('region', <django.forms.fields.CharField object at 0x7fabcd6bcf98>), ('region_code', <django.forms.fields.CharField object at 0x7fabcd6bcef0>), ('country', <django_countries.fields.LazyTypedChoiceField object at 0x7fabcd6bc390>)])¶
-
MutableAddressForm.
declared_fields
= OrderedDict()¶
-
MutableAddressForm.
media
¶
-
class
-
class
shuup.core.utils.forms.
FormInfoMap
(form_classes)[source]¶ Bases:
collections.OrderedDict
-
class
shuup.core.utils.forms.
RecoverPasswordForm
(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
-
token_generator
= <django.contrib.auth.tokens.PasswordResetTokenGenerator object>¶
-
subject_template_name
= ('shuup/user/recover_password_mail_subject.jinja',)¶
-
email_template_name
= 'shuup/user/recover_password_mail_content.jinja'¶
-
from_email
= None¶
-
base_fields
= OrderedDict([('username', <django.forms.fields.CharField object at 0x7fabcd6bc278>), ('email', <django.forms.fields.EmailField object at 0x7fabcd6bcc88>)])¶
-
declared_fields
= OrderedDict([('username', <django.forms.fields.CharField object at 0x7fabcd6bc278>), ('email', <django.forms.fields.EmailField object at 0x7fabcd6bcc88>)])¶
-
media
¶
-
shuup.core.utils.line_unit_mixin module¶
-
class
shuup.core.utils.line_unit_mixin.
LineWithUnit
[source]¶ Bases:
object
-
unit
¶ Unit of this line.
Return type: UnitInterface
-
shuup.core.utils.maintenance module¶
shuup.core.utils.model_caching_descriptor module¶
shuup.core.utils.name_mixin module¶
shuup.core.utils.price_display module¶
Utilities for displaying prices correctly.
Contents:
- Class
PriceDisplayOptions
for storing the display options.- Helper function
render_price_property
for rendering prices correctly from Python code.- Various filter classes for implementing Jinja2 filters.
-
shuup.core.utils.price_display.
render_price_property
(request, item, priceful, property_name='price')[source]¶ Render price property of a Priceful object.
Return type: str
-
class
shuup.core.utils.price_display.
PriceDisplayFilter
(name, property_name=None)[source]¶ Bases:
shuup.core.utils.price_display._ContextFilter
-
class
shuup.core.utils.price_display.
PricePropertyFilter
(name, property_name=None)[source]¶ Bases:
shuup.core.utils.price_display._ContextFilter
-
class
shuup.core.utils.price_display.
PricePercentPropertyFilter
(name, property_name=None)[source]¶ Bases:
shuup.core.utils.price_display._ContextFilter
shuup.core.utils.prices module¶
-
shuup.core.utils.prices.
convert_taxness
(request, item, priceful, with_taxes)[source]¶ Convert taxness of a priceful object.
Return a
Priceful
objectresult
satisfyingresult.price.includes_tax == with_taxes
if possible.When given
priceful
does not have tax amount and taxes cannot be calculated automatically (should_calculate_taxes_automatically
returns false), return the givenpriceful
as is.Given
request
is used for constructing aTaxingContext
.Return type: shuup.core.pricing.Priceful
-
class
shuup.core.utils.prices.
TaxedPriceInfo
(price, base_price, quantity, tax_amount, **kwargs)[source]¶ Bases:
shuup.core.pricing.PriceInfo
shuup.core.utils.product_bought_with_relations module¶
shuup.core.utils.product_caching_object module¶
shuup.core.utils.product_statistics module¶
-
shuup.core.utils.product_statistics.
get_best_selling_product_info
(shop_ids, cutoff_days=30)[source]¶
-
shuup.core.utils.product_statistics.
get_products_ordered_with
(prod, count=20, request=None, language=None)[source]¶
shuup.core.utils.query module¶
shuup.core.utils.slugs module¶
shuup.core.utils.tax_numbers module¶
-
shuup.core.utils.tax_numbers.
validate
(tax_number)[source]¶ Validate a tax number.
Parameters: tax_number (str) – Tax number to validate Returns: Type identifier of the tax number, if detected. Possible values for now are either “vat” or “unknown”. Return type: str Raise: ValidationError
if tax number type was detected, but it is somehow malformed.
shuup.core.utils.users module¶
shuup.core.utils.vat module¶
-
exception
shuup.core.utils.vat.
VatValidationError
(*args, **kwargs)[source]¶ Bases:
django.core.exceptions.ValidationError
-
code
= None¶
-
-
exception
shuup.core.utils.vat.
VatCannotIdentifyValidationError
(*args, **kwargs)[source]¶ Bases:
shuup.core.utils.vat.VatValidationError
-
code
= 'vat_cannot_identify'¶
-
-
exception
shuup.core.utils.vat.
VatInvalidValidationError
(*args, **kwargs)[source]¶ Bases:
shuup.core.utils.vat.VatValidationError
-
code
= 'vat_invalid'¶
-
-
shuup.core.utils.vat.
verify_vat
(vat_id, default_prefix='')[source]¶ Verify an EU VAT ID.
Returns a tuple (prefix, code_parts) – if both are truthy, the validation succeeded. If the prefix part is falsy, then the prefix was unknown and no validation was even attempted. If the prefix part is truthy, then it will contain the country prefix used for validation. The code_parts part can still be falsy, if the validation for the country’s VAT number pattern failed.
Parameters: Returns: Tuple of (prefix, code_parts)