def get_urls(self): return [ admin_url( "^products/(?P<pk>\d+)/delete/$", "shuup.admin.modules.products.views.ProductDeleteView", name="product.delete", permissions=["shuup.delete_product"] ), admin_url( "^products/(?P<pk>\d+)/media/$", "shuup.admin.modules.products.views.ProductMediaEditView", name="product.edit_media", permissions=get_default_model_permissions(Product), ), admin_url( "^products/(?P<pk>\d+)/crosssell/$", "shuup.admin.modules.products.views.ProductCrossSellEditView", name="product.edit_cross_sell", permissions=get_default_model_permissions(ProductCrossSell), ), admin_url( "^products/(?P<pk>\d+)/variation/$", "shuup.admin.modules.products.views.ProductVariationView", name="product.edit_variation", permissions=get_default_model_permissions(ProductVariationResult), ), admin_url( "^products/(?P<pk>\d+)/package/$", "shuup.admin.modules.products.views.ProductPackageView", name="product.edit_package", permissions=get_default_model_permissions(ProductPackageLink) ) ] + get_edit_and_list_urls( url_prefix="^products", view_template="shuup.admin.modules.products.views.Product%sView", name_template="product.%s", permissions=get_default_model_permissions(Product) )
def get_urls(self): return [ admin_url( "^contacts/new/$", "shuup.admin.modules.contacts.views.ContactEditView", kwargs={"pk": None}, name="contact.new", permissions=["shuup.add_contact"], ), admin_url( "^contacts/(?P<pk>\d+)/edit/$", "shuup.admin.modules.contacts.views.ContactEditView", name="contact.edit", permissions=["shuup.change_contact"], ), admin_url( "^contacts/(?P<pk>\d+)/$", "shuup.admin.modules.contacts.views.ContactDetailView", name="contact.detail", permissions=get_default_model_permissions(Contact), ), admin_url( "^contacts/reset-password/(?P<pk>\d+)/$", "shuup.admin.modules.contacts.views.ContactResetPasswordView", name="contact.reset_password", permissions=get_default_model_permissions(Contact), ), admin_url( "^contacts/$", "shuup.admin.modules.contacts.views.ContactListView", name="contact.list", permissions=get_default_model_permissions(Contact), ), ]
def get_urls(self): return [ admin_url( "^adjust-stock/(?P<supplier_id>\d+)/(?P<product_id>\d+)/", "shuup.simple_supplier.admin_module.views.process_stock_adjustment", name="simple_supplier.stocks", permissions=get_default_model_permissions(StockAdjustment) ), admin_url( "^alert-limit/(?P<supplier_id>\d+)/(?P<product_id>\d+)/", "shuup.simple_supplier.admin_module.views.process_alert_limit", name="simple_supplier.alert_limits", permissions=get_default_model_permissions(StockAdjustment) ), admin_url( "^stocks/", "shuup.simple_supplier.admin_module.views.StocksListView", name="simple_supplier.stocks" ), admin_url( "^list-settings/", "shuup.admin.modules.settings.views.ListSettingsView", name="simple_supplier.list_settings", permissions=get_default_model_permissions(StockAdjustment), ) ]
def get_required_permissions(self): return ( get_permissions_from_urls(self.get_urls()) | get_default_model_permissions(Contact) | get_default_model_permissions(Order) | get_default_model_permissions(Product) )
def get_urls(self): return [ admin_url( "^addons/$", "shuup.addons.admin_module.views.AddonListView", name="addon.list", permissions=get_default_model_permissions(Shop) ), admin_url( "^addons/add/$", "shuup.addons.admin_module.views.AddonUploadView", name="addon.upload", permissions=get_default_model_permissions(Shop) ), admin_url( "^addons/add/confirm/$", "shuup.addons.admin_module.views.AddonUploadConfirmView", name="addon.upload_confirm", permissions=get_default_model_permissions(Shop) ), admin_url( "^addons/reload/$", "shuup.addons.admin_module.views.ReloadView", name="addon.reload", permissions=get_default_model_permissions(Shop) ), ]
def get_urls(self): return [ admin_url( "^categories/(?P<pk>\d+)/copy-visibility/$", "shuup.admin.modules.categories.views.CategoryCopyVisibilityView", name="category.copy_visibility", permissions=get_default_model_permissions(Category) ) ] + get_edit_and_list_urls( url_prefix="^categories", view_template="shuup.admin.modules.categories.views.Category%sView", name_template="category.%s", permissions=get_default_model_permissions(Category), )
def get_urls(self): return [ admin_url( "^shops/(?P<pk>\d+)/enable/$", "shuup.admin.modules.shops.views.ShopEnablerView", name="shop.enable", permissions=get_default_model_permissions(Shop) ), ] + get_edit_and_list_urls( url_prefix="^shops", view_template="shuup.admin.modules.shops.views.Shop%sView", name_template="shop.%s", permissions=get_default_model_permissions(Shop) )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^carousels", view_template="shuup.front.apps.carousel.admin_module.views.Carousel%sView", name_template="carousel.%s", permissions=get_default_model_permissions(Carousel) ) + [ admin_url( "^carousel/(?P<pk>\d+)/delete/$", "shuup.front.apps.carousel.admin_module.views.CarouselDeleteView", name="carousel.delete", permissions=get_default_model_permissions(Carousel) ), ]
def get_urls(self): return [ admin_url( "^importer/import$", "shuup.importer.admin_module.import_views.ImportView", name="importer.import", permissions=get_default_model_permissions(Shop) ), admin_url( "^importer/import/process$", "shuup.importer.admin_module.import_views.ImportProcessView", name="importer.import_process", permissions=get_default_model_permissions(Shop) ), ]
def get_urls(self): # doccov: ignore return [ admin_url( "^xtheme/(?P<theme_identifier>.+?)/", "shuup.xtheme.admin_module.views.ThemeConfigDetailView", name="xtheme.config_detail", permissions=get_default_model_permissions(ThemeSettings) ), admin_url( "^xtheme/", "shuup.xtheme.admin_module.views.ThemeConfigView", name="xtheme.config", permissions=get_default_model_permissions(ThemeSettings) ) ]
def get_urls(self): return get_edit_and_list_urls( url_prefix="^default-tax/rules", view_template="shuup.default_tax.admin_module.views.TaxRule%sView", name_template="default_tax.tax_rule.%s", permissions=get_default_model_permissions(TaxRule) )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^Manufacturers", view_template="shuup.admin.modules.manufacturers.views.Manufacturer%sView", name_template="manufacturers.%s", permissions=get_default_model_permissions(Manufacturer), )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^cms/page", view_template="shuup.simple_cms.admin_module.views.Page%sView", name_template="simple_cms.page.%s", permissions=get_default_model_permissions(Page) )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^shops", view_template="shuup.admin.modules.shops.views.Shop%sView", name_template="shop.%s", permissions=get_default_model_permissions(Shop) )
def get_stock_adjustment_div(request, supplier, product): """ Get html string to adjust stock values Contains inputs for purchase_price_value and delta :param request: HTTP request :type request: django.http.HttpRequest :param supplier: shuup Supplier :type supplier: shuup.core.models.Supplier :param product: shuup Product :type product: shuup.core.models.Product :return: html div as a string :rtype: str """ latest_adjustment = StockAdjustment.objects.filter( product=product, supplier=supplier, type=StockAdjustmentType.INVENTORY ).last() purchase_price = latest_adjustment.purchase_price_value if latest_adjustment else Decimal("0.00") context = { "product": product, "supplier": supplier, "delta_step": pow(0.1, product.sales_unit.decimals), "adjustment_form": StockAdjustmentForm(initial={"purchase_price": purchase_price, "delta": None}), } if "shuup.notify" in settings.INSTALLED_APPS: from shuup.notify.models import Notification context["alert_limit_form"] = AlertLimitForm(initial={"alert_limit": 0}) if not get_missing_permissions(request.user, get_default_model_permissions(Notification)): context["notify_url"] = reverse("shuup_admin:notify.script.list") else: context["notify_url"] = "" return render_to_string("shuup/simple_supplier/admin/add_stock_form.jinja", context=context, request=request)
def get_urls(self): return get_edit_and_list_urls( url_prefix="^currencies", view_template="shuup.admin.modules.currencies.views.Currency%sView", name_template="currency.%s", permissions=get_default_model_permissions(Currency) )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^attributes", view_template="shuup.admin.modules.attributes.views.Attribute%sView", name_template="attribute.%s", permissions=get_default_model_permissions(Attribute) )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^categories", view_template="shuup.admin.modules.categories.views.Category%sView", name_template="category.%s", permissions=get_default_model_permissions(Category), )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^sales-units", view_template="shuup.admin.modules.sales_units.views.SalesUnit%sView", name_template="sales_unit.%s", permissions=get_default_model_permissions(SalesUnit) )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^product-types", view_template="shuup.admin.modules.product_types.views.ProductType%sView", name_template="product_type.%s", permissions=get_default_model_permissions(ProductType), )
def get_urls(self): permissions = get_default_model_permissions(NotificationModel) return [ admin_url( "notify/script-item-editor/", "shuup.notify.admin_module.views.script_item_editor", name="notify.script-item-editor", permissions=permissions ), admin_url( "notify/script/content/(?P<pk>\d+)/", "shuup.notify.admin_module.views.EditScriptContentView", name="notify.script.edit-content", permissions=permissions ), admin_url( "notify/mark-read/(?P<pk>\d+)/$", self.mark_notification_read_view, name="notify.mark-read", permissions=permissions ), ] + get_edit_and_list_urls( url_prefix="^notify/script", view_template="shuup.notify.admin_module.views.Script%sView", name_template="notify.script.%s", permissions=permissions )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^permission-groups", view_template="shuup.admin.modules.permission_groups.views.PermissionGroup%sView", name_template="permission_group.%s", permissions=get_default_model_permissions(PermissionGroup), )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^suppliers", view_template="shuup.admin.modules.suppliers.views.Supplier%sView", name_template="supplier.%s", permissions=get_default_model_permissions(Supplier) )
def get_urls(self): return [ admin_url( "^mocker/$", "shuup.testing.admin_module.mocker_view.MockerView", name="mocker", permissions=get_default_model_permissions(Shop) ) ]
def get_urls(self): return [ admin_url( "^carts/$", "shuup.front.admin_module.carts.views.CartListView", name="cart.list", permissions=get_default_model_permissions(StoredBasket), ), ]
def get_urls(self): return [ admin_url( "^media/$", "shuup.admin.modules.media.views.MediaBrowserView", name="media.browse", permissions=get_default_model_permissions(File), ), ]
def get_urls(self): return [ admin_url( "^system/api/$", "shuup.api.admin_module.views.permissions.APIPermissionView", name="api_permission", permissions=get_default_model_permissions(Shop) ) ]
def get_urls(self): return [ admin_url( "^system/telemetry/$", "shuup.admin.modules.system.views.telemetry.TelemetryView", name="telemetry", permissions=get_default_model_permissions(Shop) ), ]
def get_urls(self): return [ admin_url( "^sample_data/$", "shuup.admin.modules.sample_data.views.ConsolidateSampleObjectsView", name="sample_data", permissions=get_default_model_permissions(Shop) ) ]
def get_urls(self): return [ admin_url( "^settings/$", "shuup.admin.modules.settings.views.SystemSettingsView", name="settings.list", permissions=get_default_model_permissions(Shop) ), ]
def get_urls(self): return [ admin_url( "^products/(?P<pk>\d+)/delete/$", "shuup.admin.modules.products.views.ProductDeleteView", name="shop_product.delete", permissions=["shuup.delete_product"] ), admin_url( "^products/(?P<pk>\d+)/media/$", "shuup.admin.modules.products.views.ProductMediaEditView", name="shop_product.edit_media", permissions=get_default_model_permissions(ShopProduct), ), admin_url( "^products/(?P<pk>\d+)/media/add/$", "shuup.admin.modules.products.views.ProductMediaBulkAdderView", name="shop_product.add_media", permissions=get_default_model_permissions(ShopProduct), ), admin_url( "^products/(?P<pk>\d+)/crosssell/$", "shuup.admin.modules.products.views.ProductCrossSellEditView", name="shop_product.edit_cross_sell", permissions=get_default_model_permissions(ProductCrossSell), ), admin_url( "^products/(?P<pk>\d+)/variation/$", "shuup.admin.modules.products.views.ProductVariationView", name="shop_product.edit_variation", permissions=get_default_model_permissions(ProductVariationResult), ), admin_url( "^products/(?P<pk>\d+)/package/$", "shuup.admin.modules.products.views.ProductPackageView", name="shop_product.edit_package", permissions=get_default_model_permissions(ProductPackageLink) ), admin_url( "^products/mass-edit/$", "shuup.admin.modules.products.views.ProductMassEditView", name="shop_product.mass_edit", permissions=get_default_model_permissions(ShopProduct) ), ] + get_edit_and_list_urls( url_prefix="^products", view_template="shuup.admin.modules.products.views.Product%sView", name_template="shop_product.%s", permissions=get_default_model_permissions(ShopProduct) )
def get_model_url(object, kind="detail", user=None, required_permissions=None, shop=None): """ Get a an admin object URL for the given object or object class by interrogating each admin module. If a user is provided, checks whether user has correct permissions before returning URL. Raises `NoModelUrl` if lookup fails :param object: Model or object class. :type object: class :param kind: URL kind. Currently "new", "list", "edit", "detail". :type kind: str :param user: Optional instance to check for permissions :type user: django.contrib.auth.models.User|None :param required_permissions: Optional iterable of permission strings :type required_permissions: Iterable[str]|None :param shop: The shop that owns the resource :type request: shuup.core.models.Shop|None :return: Resolved URL. :rtype: str """ for module in get_modules(): url = module.get_model_url(object, kind, shop) if not url: continue if user is None: return url else: permissions = () if required_permissions is not None: permissions = required_permissions else: # TODO: Check permission type based on kind permissions = get_default_model_permissions(object) if not get_missing_permissions(user, permissions): return url raise NoModelUrl("Can't get object URL of kind %s: %r" % (kind, force_text(object)))
def get_required_permissions(self): return get_default_model_permissions(Category) | get_default_model_permissions(File)
def get_required_permissions(self): return get_default_model_permissions(Attribute)
def get_urls(self): return [ admin_url( "^orders/(?P<pk>\d+)/create-shipment/$", "shuup.admin.modules.orders.views.OrderCreateShipmentView", name="order.create-shipment", permissions=["shuup.add_shipment"]), admin_url("^shipments/(?P<pk>\d+)/delete/$", "shuup.admin.modules.orders.views.ShipmentDeleteView", name="order.delete-shipment", permissions=["shuup.delete_shipment"]), admin_url( "^orders/(?P<pk>\d+)/create-payment/$", "shuup.admin.modules.orders.views.OrderCreatePaymentView", name="order.create-payment", permissions=["shuup.add_payment"]), admin_url("^orders/(?P<pk>\d+)/set-paid/$", "shuup.admin.modules.orders.views.OrderSetPaidView", name="order.set-paid", permissions=["shuup.add_payment"]), admin_url("^orders/(?P<pk>\d+)/set-status/$", "shuup.admin.modules.orders.views.OrderSetStatusView", name="order.set-status", permissions=get_default_model_permissions(Order)), admin_url("^orders/(?P<pk>\d+)/new-log-entry/$", "shuup.admin.modules.orders.views.NewLogEntryView", name="order.new-log-entry", permissions=get_default_model_permissions(Order)), admin_url( "^orders/(?P<pk>\d+)/update-admin-comment/$", "shuup.admin.modules.orders.views.UpdateAdminCommentView", name="order.update-admin-comment", permissions=get_default_model_permissions(Order)), admin_url("^orders/(?P<pk>\d+)/create-refund/$", "shuup.admin.modules.orders.views.OrderCreateRefundView", name="order.create-refund", permissions=get_default_model_permissions(Order)), admin_url( "^orders/(?P<pk>\d+)/create-refund/full-refund$", "shuup.admin.modules.orders.views.OrderCreateFullRefundView", name="order.create-full-refund", permissions=get_default_model_permissions(Order)), admin_url("^orders/(?P<pk>\d+)/$", "shuup.admin.modules.orders.views.OrderDetailView", name="order.detail", permissions=get_default_model_permissions(Order)), admin_url("^orders/new/$", "shuup.admin.modules.orders.views.OrderEditView", name="order.new", permissions=["shuup.add_order"]), admin_url("^orders/(?P<pk>\d+)/edit/$", "shuup.admin.modules.orders.views.OrderEditView", name="order.edit", permissions=["shuup.change_order"]), admin_url( "^orders/$", "shuup.admin.modules.orders.views.OrderListView", name="order.list", permissions=get_default_model_permissions(Order), ), admin_url( "^orders/list-settings/", "shuup.admin.modules.settings.views.ListSettingsView", name="order.list_settings", permissions=get_default_model_permissions(Order), ), admin_url("^orders/(?P<pk>\d+)/edit-addresses/$", "shuup.admin.modules.orders.views.OrderAddressEditView", name="order.edit-addresses", permissions=["shuup.change_order"]), ] + get_edit_and_list_urls( url_prefix="^order-status", view_template="shuup.admin.modules.orders.views.OrderStatus%sView", name_template="order_status.%s", permissions=get_default_model_permissions(OrderStatus))
def get_required_permissions(self): return get_default_model_permissions(StockAdjustment)
def get_urls(self): return get_edit_and_list_urls( url_prefix="^suppliers", view_template="shuup.admin.modules.suppliers.views.Supplier%sView", name_template="supplier.%s", permissions=get_default_model_permissions(Supplier))
def get_required_permissions(self): return get_default_model_permissions(ContactGroup)
def get_required_permissions(self): return get_default_model_permissions( Shop) | get_default_model_permissions(File)
def get_required_permissions(self): return get_default_model_permissions(StoredBasket)
def get_urls(self): return get_edit_and_list_urls( url_prefix="^order-status", view_template="shuup.admin.modules.orders.views.OrderStatus%sView", name_template="order_status.%s", permissions=get_default_model_permissions(OrderStatus))
def get_required_permissions(self): return (get_default_model_permissions(CompanyContact) | get_default_model_permissions(Contact) | get_default_model_permissions(PersonContact))
def get_required_permissions(self): return get_default_model_permissions(get_user_model())
def get_urls(self): return get_edit_and_list_urls( url_prefix="^default-tax/rules", view_template="shuup.default_tax.admin_module.views.TaxRule%sView", name_template="default_tax.tax_rule.%s", permissions=get_default_model_permissions(TaxRule))
def get_required_permissions(self): return get_default_model_permissions(NotificationModel)
def get_required_permissions(self): return ( get_permissions_from_urls(self.get_urls()) | get_default_model_permissions(Product) | get_default_model_permissions(File) )
def get_required_permissions(self): return get_default_model_permissions(Manufacturer)
def get_required_permissions(self): return get_default_model_permissions(ServiceProvider)
def get_urls(self): return [ admin_url( "^orders/(?P<pk>\d+)/create-shipment/$", "shuup.admin.modules.orders.views.OrderCreateShipmentView", name="order.create-shipment", permissions=["shuup.add_shipment"] ), admin_url( "^shipments/(?P<pk>\d+)/delete/$", "shuup.admin.modules.orders.views.ShipmentDeleteView", name="order.delete-shipment", permissions=["shuup.delete_shipment"] ), admin_url( "^orders/(?P<pk>\d+)/create-payment/$", "shuup.admin.modules.orders.views.OrderCreatePaymentView", name="order.create-payment", permissions=["shuup.add_payment"] ), admin_url( "^orders/(?P<pk>\d+)/set-status/$", "shuup.admin.modules.orders.views.OrderSetStatusView", name="order.set-status", permissions=get_default_model_permissions(Order) ), admin_url( "^orders/(?P<pk>\d+)/new-log-entry/$", "shuup.admin.modules.orders.views.NewLogEntryView", name="order.new-log-entry", permissions=get_default_model_permissions(Order) ), admin_url( "^orders/(?P<pk>\d+)/create-refund/$", "shuup.admin.modules.orders.views.OrderCreateRefundView", name="order.create-refund", permissions=get_default_model_permissions(Order) ), admin_url( "^orders/(?P<pk>\d+)/create-refund/full-refund$", "shuup.admin.modules.orders.views.OrderCreateFullRefundView", name="order.create-full-refund", permissions=get_default_model_permissions(Order) ), admin_url( "^orders/(?P<pk>\d+)/$", "shuup.admin.modules.orders.views.OrderDetailView", name="order.detail", permissions=get_default_model_permissions(Order) ), admin_url( "^orders/new/$", "shuup.admin.modules.orders.views.OrderEditView", name="order.new", permissions=["shuup.add_order"] ), admin_url( "^orders/(?P<pk>\d+)/edit/$", "shuup.admin.modules.orders.views.OrderEditView", name="order.edit", permissions=["shuup.change_order"] ), admin_url( "^orders/$", "shuup.admin.modules.orders.views.OrderListView", name="order.list", permissions=get_default_model_permissions(Order), ), ]
def get_required_permissions(self): return get_default_model_permissions(OrderStatus)
def get_required_permissions(self): return get_default_model_permissions(ProductType)
def get_required_permissions(self): return get_default_model_permissions(SalesUnit)
def test_default_model_permissions(): permissions = set( ["shuup.add_product", "shuup.delete_product", "shuup.change_product"]) assert get_default_model_permissions(Product) == permissions
def get_urls(self): return get_edit_and_list_urls( url_prefix="^currencies", view_template="shuup.admin.modules.currencies.views.Currency%sView", name_template="currency.%s", permissions=get_default_model_permissions(Currency))
def get_required_permissions(self): return get_default_model_permissions(MailchimpContact)
def get_urls(self): return get_edit_and_list_urls( url_prefix="^shops", view_template="shuup.admin.modules.shops.views.Shop%sView", name_template="shop.%s", permissions=get_default_model_permissions(Shop))
def get_required_permissions(self): return get_default_model_permissions(self.model)
def get_required_permissions(self): return get_default_model_permissions(DisplayUnit)
def get_required_permissions(self): return get_default_model_permissions(ThemeSettings)
def get_urls(self): return get_edit_and_list_urls( url_prefix="^cms/page", view_template="shuup.simple_cms.admin_module.views.Page%sView", name_template="simple_cms.page.%s", permissions=get_default_model_permissions(Page))