Ejemplo n.º 1
0
 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)
         ),
     ]
Ejemplo n.º 2
0
 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))
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 def get_urls(self):
     return [
         admin_url("^settings/$",
                   "wshop.admin.modules.settings.views.SystemSettingsView",
                   name="settings.list",
                   permissions=get_default_model_permissions(Shop)),
     ]
Ejemplo n.º 5
0
 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),
     )
Ejemplo n.º 6
0
 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))
Ejemplo n.º 7
0
 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)
     )
Ejemplo n.º 8
0
 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),
     )
Ejemplo n.º 9
0
 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))
     ]
Ejemplo n.º 10
0
 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))
     ]
Ejemplo n.º 11
0
 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),
     )
Ejemplo n.º 12
0
 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))
     ]
Ejemplo n.º 13
0
 def get_urls(self):
     return [
         admin_url(
             "^system/telemetry/$",
             "wshop.admin.modules.system.views.telemetry.TelemetryView",
             name="telemetry",
             permissions=get_default_model_permissions(Shop)),
     ]
Ejemplo n.º 14
0
 def get_urls(self):
     return [
         admin_url(
             "^media/$",
             "wshop.admin.modules.media.views.MediaBrowserView",
             name="media.browse",
             permissions=get_default_model_permissions(File),
         ),
     ]
Ejemplo n.º 15
0
 def get_urls(self):
     return [
         admin_url(
             "^mocker/$",
             "wshop.testing.admin_module.mocker_view.MockerView",
             name="mocker",
             permissions=get_default_model_permissions(Shop)
         )
     ]
Ejemplo n.º 16
0
 def get_urls(self):
     return [
         admin_url(
             "^carts/$",
             "wshop.front.admin_module.carts.views.CartListView",
             name="cart.list",
             permissions=get_default_model_permissions(StoredBasket),
         ),
     ]
Ejemplo n.º 17
0
 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),
     )
Ejemplo n.º 18
0
    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))
Ejemplo n.º 19
0
 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
Ejemplo n.º 20
0
 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()),
         ))
Ejemplo n.º 21
0
 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),
         )
     ]
Ejemplo n.º 22
0
 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)
     )
Ejemplo n.º 23
0
 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),
     )
Ejemplo n.º 24
0
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)
Ejemplo n.º 25
0
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)))
Ejemplo n.º 26
0
 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))
Ejemplo n.º 27
0
 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))
     ]
Ejemplo n.º 28
0
    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,
            )
        ]
Ejemplo n.º 29
0
 def get_required_permissions(self):
     return (get_permissions_from_urls(self.get_urls())
             | get_default_model_permissions(Product)
             | get_default_model_permissions(File))
Ejemplo n.º 30
0
 def get_required_permissions(self):
     return get_default_model_permissions(ThemeSettings)