def get_urls(self): return [ admin_url( "^addons/$", "wshop.addons.admin_module.views.AddonListView", name="addon.list", permissions=get_default_model_permissions(Shop) ), admin_url( "^addons/add/$", "wshop.addons.admin_module.views.AddonUploadView", name="addon.upload", permissions=get_default_model_permissions(Shop) ), admin_url( "^addons/add/confirm/$", "wshop.addons.admin_module.views.AddonUploadConfirmView", name="addon.upload_confirm", permissions=get_default_model_permissions(Shop) ), admin_url( "^addons/reload/$", "wshop.addons.admin_module.views.ReloadView", name="addon.reload", permissions=get_default_model_permissions(Shop) ), ]
def get_urls(self): return [ admin_url("^shops/(?P<pk>\d+)/enable/$", "wshop.admin.modules.shops.views.ShopEnablerView", name="shop.enable", permissions=get_default_model_permissions(Shop)), admin_url("^shops/(?P<pk>\d+)/select/$", "wshop.admin.modules.shops.views.ShopSelectView", name="shop.select", permissions=get_default_model_permissions(Shop)), ] + get_edit_and_list_urls( url_prefix="^shops", view_template="wshop.admin.modules.shops.views.Shop%sView", name_template="shop.%s", permissions=get_default_model_permissions(Shop))
def get_urls(self): permissions = get_default_model_permissions(NotificationModel) return [ admin_url("notify/script-item-editor/", "wshop.notify.admin_module.views.script_item_editor", name="notify.script-item-editor", permissions=permissions), admin_url("notify/script/content/(?P<pk>\d+)/", "wshop.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), admin_url("notify/script-template/", "wshop.notify.admin_module.views.ScriptTemplateView", name="notify.script-template", permissions=permissions), admin_url( "notify/script-template-config/(?P<id>.+)/", "wshop.notify.admin_module.views.ScriptTemplateConfigView", name="notify.script-template-config", permissions=permissions), admin_url("notify/script-template-edit/(?P<pk>.+)/", "wshop.notify.admin_module.views.ScriptTemplateEditView", name="notify.script-template-edit", permissions=permissions), ] + get_edit_and_list_urls( url_prefix="^notify/script", view_template="wshop.notify.admin_module.views.Script%sView", name_template="notify.script.%s", permissions=permissions)
def get_urls(self): return [ admin_url("^settings/$", "wshop.admin.modules.settings.views.SystemSettingsView", name="settings.list", permissions=get_default_model_permissions(Shop)), ]
def get_urls(self): return get_edit_and_list_urls( url_prefix="^product-types", view_template="wshop.admin.modules.product_types.views.ProductType%sView", name_template="product_type.%s", permissions=get_default_model_permissions(ProductType), )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^display-units", view_template= "wshop.admin.modules.sales_units.views.DisplayUnit%sView", name_template="display_unit.%s", permissions=get_default_model_permissions(DisplayUnit))
def get_urls(self): return get_edit_and_list_urls( url_prefix="^suppliers", view_template="wshop.admin.modules.suppliers.views.Supplier%sView", name_template="supplier.%s", permissions=get_default_model_permissions(Supplier) )
def get_urls(self): return get_edit_and_list_urls( url_prefix="^manufacturers", view_template= "wshop.admin.modules.manufacturers.views.Manufacturer%sView", name_template="manufacturer.%s", permissions=get_default_model_permissions(Manufacturer), )
def get_urls(self): return [ admin_url( "^sample_data/$", "wshop.admin.modules.sample_data.views.ConsolidateSampleObjectsView", name="sample_data", permissions=get_default_model_permissions(Shop)) ]
def get_urls(self): # doccov: ignore return [ admin_url( "^xtheme/guide/(?P<theme_identifier>.+?)/", "wshop.xtheme.admin_module.views.ThemeGuideTemplateView", name="xtheme.guide", permissions=get_default_model_permissions(ThemeSettings)), admin_url( "^xtheme/configure/(?P<theme_identifier>.+?)/", "wshop.xtheme.admin_module.views.ThemeConfigDetailView", name="xtheme.config_detail", permissions=get_default_model_permissions(ThemeSettings)), admin_url("^xtheme/", "wshop.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="^permission-groups", view_template= "wshop.admin.modules.permission_groups.views.PermissionGroup%sView", name_template="permission_group.%s", permissions=get_default_model_permissions(PermissionGroup), )
def get_urls(self): return [ admin_url( "^system/api/$", "wshop.api.admin_module.views.permissions.APIPermissionView", name="api_permission", permissions=get_default_model_permissions(Shop)) ]
def get_urls(self): return [ admin_url( "^system/telemetry/$", "wshop.admin.modules.system.views.telemetry.TelemetryView", name="telemetry", permissions=get_default_model_permissions(Shop)), ]
def get_urls(self): return [ admin_url( "^media/$", "wshop.admin.modules.media.views.MediaBrowserView", name="media.browse", permissions=get_default_model_permissions(File), ), ]
def get_urls(self): return [ admin_url( "^mocker/$", "wshop.testing.admin_module.mocker_view.MockerView", name="mocker", permissions=get_default_model_permissions(Shop) ) ]
def get_urls(self): return [ admin_url( "^carts/$", "wshop.front.admin_module.carts.views.CartListView", name="cart.list", permissions=get_default_model_permissions(StoredBasket), ), ]
def get_urls(self): return [ admin_url( "^categories/(?P<pk>\d+)/copy-visibility/$", "wshop.admin.modules.categories.views.CategoryCopyVisibilityView", name="category.copy_visibility", permissions=get_default_model_permissions(Category)), admin_url( "^categories/(?P<pk>\d+)/delete/$", "wshop.admin.modules.categories.views.CategoryDeleteView", name="category.delete", permissions=get_default_model_permissions(Category)), ] + get_edit_and_list_urls( url_prefix="^categories", view_template="wshop.admin.modules.categories.views.Category%sView", name_template="category.%s", permissions=get_default_model_permissions(Category), )
def get_urls(self): basket_campaign_urls = get_edit_and_list_urls( url_prefix="^campaigns/basket", view_template= "wshop.campaigns.admin_module.views.BasketCampaign%sView", name_template="basket_campaign.%s", permissions=get_default_model_permissions(BasketCampaign)) coupon_urls = get_edit_and_list_urls( url_prefix="^campaigns/coupons", view_template="wshop.campaigns.admin_module.views.Coupon%sView", name_template="coupon.%s", permissions=get_default_model_permissions(Coupon)) return basket_campaign_urls + coupon_urls + get_edit_and_list_urls( url_prefix="^campaigns/catalog", view_template= "wshop.campaigns.admin_module.views.CatalogCampaign%sView", name_template="catalog_campaign.%s", permissions=get_default_model_permissions(CatalogCampaign))
def get_urls(self): # TODO: Add url for tax dashboard? tax_urls = get_edit_and_list_urls( url_prefix="^taxes/tax", view_template="wshop.admin.modules.taxes.views.Tax%sView", name_template="tax.%s", permissions=get_default_model_permissions(Tax) ) tax_group_urls = get_edit_and_list_urls( url_prefix="^taxes/customer-tax-group", view_template="wshop.admin.modules.taxes.views.CustomerTaxGroup%sView", name_template="customer_tax_group.%s", permissions=get_default_model_permissions(CustomerTaxGroup) ) tax_class_urls = get_edit_and_list_urls( url_prefix="^taxes/tax-class", view_template="wshop.admin.modules.taxes.views.TaxClass%sView", name_template="tax_class.%s", permissions=get_default_model_permissions(TaxClass) ) return tax_urls + tax_group_urls + tax_class_urls
def build_new_user_button(self): if self.user or isinstance(self.contact, CompanyContact): return self.append( URLActionButton( url=reverse("wshop_admin:user.new") + "?contact_id=%s" % self.contact.pk, text=_(u"New User"), tooltip=_(u"Create a user for the contact."), icon="fa fa-star", extra_css_class="btn-gray btn-inverse", required_permissions=get_default_model_permissions( get_user_model()), ))
def get_urls(self): return [ admin_url( "^adjust-stock/(?P<supplier_id>\d+)/(?P<product_id>\d+)/", "wshop.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+)/", "wshop.simple_supplier.admin_module.views.process_alert_limit", name="simple_supplier.alert_limits", permissions=get_default_model_permissions(StockAdjustment)), admin_url( "^stocks/", "wshop.simple_supplier.admin_module.views.StocksListView", name="simple_supplier.stocks"), admin_url( "^list-settings/", "wshop.admin.modules.settings.views.ListSettingsView", name="simple_supplier.list_settings", permissions=get_default_model_permissions(StockAdjustment), ) ]
def get_urls(self): return [ admin_url( "^service_provider/(?P<pk>\d+)/delete/$", "wshop.admin.modules.service_providers.views.ServiceProviderDeleteView", name="service_provider.delete", permissions=["wshop.delete_serviceprovider"] ) ] + get_edit_and_list_urls( url_prefix="^service_provider", view_template="wshop.admin.modules.service_providers.views.ServiceProvider%sView", name_template="service_provider.%s", permissions=get_default_model_permissions(ServiceProvider) )
def get_urls(self): return [ admin_url( "^contact_group/(?P<pk>\d+)/delete/$", "wshop.admin.modules.contact_groups.views.ContactGroupDeleteView", name="contact_group.delete", permissions=["wshop.delete_contactgroup"], ) ] + get_edit_and_list_urls( url_prefix="^contact_group", view_template= "wshop.admin.modules.contact_groups.views.ContactGroup%sView", name_template="contact_group.%s", permissions=get_default_model_permissions(ContactGroup), )
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: wshop Supplier :type supplier: wshop.core.models.Supplier :param product: wshop Product :type product: wshop.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 "wshop.notify" in settings.INSTALLED_APPS: from wshop.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("wshop_admin:notify.script.list") else: context["notify_url"] = "" return render_to_string("wshop/simple_supplier/admin/add_stock_form.jinja", context=context, request=request)
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: wshop.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_urls(self): return [ admin_url("^products/(?P<pk>\d+)/delete/$", "wshop.admin.modules.products.views.ProductDeleteView", name="shop_product.delete", permissions=["wshop.delete_product"]), admin_url( "^products/(?P<pk>\d+)/media/$", "wshop.admin.modules.products.views.ProductMediaEditView", name="shop_product.edit_media", permissions=get_default_model_permissions(ShopProduct), ), admin_url( "^products/(?P<pk>\d+)/media/add/$", "wshop.admin.modules.products.views.ProductMediaBulkAdderView", name="shop_product.add_media", permissions=get_default_model_permissions(ShopProduct), ), admin_url( "^products/(?P<pk>\d+)/crosssell/$", "wshop.admin.modules.products.views.ProductCrossSellEditView", name="shop_product.edit_cross_sell", permissions=get_default_model_permissions(ProductCrossSell), ), admin_url( "^products/(?P<pk>\d+)/variation/$", "wshop.admin.modules.products.views.ProductVariationView", name="shop_product.edit_variation", permissions=get_default_model_permissions( ProductVariationResult), ), admin_url( "^products/(?P<pk>\d+)/package/$", "wshop.admin.modules.products.views.ProductPackageView", name="shop_product.edit_package", permissions=get_default_model_permissions(ProductPackageLink)), admin_url("^products/mass-edit/$", "wshop.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="wshop.admin.modules.products.views.Product%sView", name_template="shop_product.%s", permissions=get_default_model_permissions(ShopProduct))
def get_urls(self): return [ admin_url( "^contacts/new/$", "wshop.admin.modules.contacts.views.ContactEditView", kwargs={"pk": None}, name="contact.new", permissions=["wshop.add_contact"], ), admin_url( "^contacts/(?P<pk>\d+)/edit/$", "wshop.admin.modules.contacts.views.ContactEditView", name="contact.edit", permissions=["wshop.change_contact"], ), admin_url( "^contacts/(?P<pk>\d+)/$", "wshop.admin.modules.contacts.views.ContactDetailView", name="contact.detail", permissions=get_default_model_permissions(Contact), ), admin_url( "^contacts/reset-password/(?P<pk>\d+)/$", "wshop.admin.modules.contacts.views.ContactResetPasswordView", name="contact.reset_password", permissions=get_default_model_permissions(Contact), ), admin_url( "^contacts/$", "wshop.admin.modules.contacts.views.ContactListView", name="contact.list", permissions=get_default_model_permissions(Contact), ), admin_url( "^contacts/list-settings/", "wshop.admin.modules.settings.views.ListSettingsView", name="contact.list_settings", permissions=get_default_model_permissions(Contact), ), admin_url("^contacts/mass-edit/$", "wshop.admin.modules.contacts.views.ContactMassEditView", name="contact.mass_edit", permissions=get_default_model_permissions(Contact)), admin_url( "^contacts/mass-edit-group/$", "wshop.admin.modules.contacts.views.ContactGroupMassEditView", name="contact.mass_edit_group", permissions=get_default_model_permissions(Contact)) ]
def get_urls(self): permissions = get_default_model_permissions(get_user_model()) return [ admin_url("^users/(?P<pk>\d+)/change-password/$", "wshop.admin.modules.users.views.UserChangePasswordView", name="user.change-password", permissions=permissions), admin_url("^users/(?P<pk>\d+)/reset-password/$", "wshop.admin.modules.users.views.UserResetPasswordView", name="user.reset-password", permissions=permissions), admin_url( "^users/(?P<pk>\d+)/change-permissions/$", "wshop.admin.modules.users.views.UserChangePermissionsView", name="user.change-permissions", permissions=["auth.change_permission"]), admin_url("^users/(?P<pk>\d+)/$", "wshop.admin.modules.users.views.UserDetailView", name="user.detail", permissions=permissions), admin_url("^users/new/$", "wshop.admin.modules.users.views.UserDetailView", kwargs={"pk": None}, name="user.new", permissions=permissions), admin_url("^users/$", "wshop.admin.modules.users.views.UserListView", name="user.list", permissions=permissions), admin_url("^users/(?P<pk>\d+)/login/$", "wshop.admin.modules.users.views.LoginAsUserView", name="user.login-as", permissions=permissions), admin_url( "^contacts/list-settings/", "wshop.admin.modules.settings.views.ListSettingsView", name="user.list_settings", permissions=permissions, ) ]
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(ThemeSettings)