def panes(self): return load_setup_wizard_panes( shop=Shop.objects.first(), request=self.request, # if the user presses "previous" then "next" again, resubmit the form visible_only=self.request.method == "GET" )
def get_context_data(self, **kwargs): context = super(HomeView, self).get_context_data(**kwargs) context["blocks"] = blocks = [] context["tour_key"] = "home" context["tour_complete"] = is_tour_complete(get_shop(self.request), "home") wizard_complete = setup_wizard_complete(self.request) wizard_url = reverse("shuup_admin:wizard") wizard_actions = [] if not wizard_complete: wizard_actions.append({ "text": _("Complete wizard"), "url": wizard_url }) else: wizard_steps = load_setup_wizard_panes( shop=self.request.shop, request=self.request, visible_only=False) for step in wizard_steps: wizard_actions.append({ "text": step.title, "url": "%s?pane_id=%s" % (wizard_url, step.identifier), "no_redirect": True }) blocks.append( SimpleHelpBlock( _("Complete the setup wizard"), actions=wizard_actions, icon_url="shuup_admin/img/configure.png", priority=-1, done=wizard_complete ) ) for module in get_modules(): if not get_missing_permissions(self.request.user, module.get_required_permissions()): blocks.extend(module.get_help_blocks(request=self.request, kind="setup")) blocks.sort(key=lambda b: b.priority) blocks.append( SimpleHelpBlock( priority=1000, text=_("Publish your store"), description=_("Let customers browse your store and make purchases"), css_class="green ", actions=[{ "method": "POST", "text": _("Publish shop"), "url": reverse("shuup_admin:shop.enable", kwargs={"pk": self.request.shop.pk}), "data": { "enable": True, "redirect": reverse("shuup_admin:dashboard") } }], icon_url="shuup_admin/img/publish.png", done=not self.request.shop.maintenance_mode ) ) return context
def get_context_data(self, **kwargs): context = super(HomeView, self).get_context_data(**kwargs) context["blocks"] = blocks = [] context["tour_key"] = "home" context["tour_complete"] = is_tour_complete("home") wizard_complete = setup_wizard_complete() wizard_url = reverse("shuup_admin:wizard") wizard_actions = [] if not wizard_complete: wizard_actions.append({ "text": _("Complete wizard"), "url": wizard_url }) else: wizard_steps = load_setup_wizard_panes( shop=Shop.objects.first(), request=self.request, visible_only=False) for step in wizard_steps: wizard_actions.append({ "text": step.title, "url": "%s?pane_id=%s" % (wizard_url, step.identifier), "no_redirect": True }) blocks.append( SimpleHelpBlock( _("Complete the setup wizard"), actions=wizard_actions, icon_url="shuup_admin/img/configure.png", priority=-1, done=wizard_complete ) ) for module in get_modules(): if not get_missing_permissions(self.request.user, module.get_required_permissions()): blocks.extend(module.get_help_blocks(request=self.request, kind="setup")) blocks.sort(key=lambda b: b.priority) blocks.append( SimpleHelpBlock( priority=1000, text=_("Publish your store"), description=_("Let customers browse your store and make purchases"), css_class="green", actions=[{ "method": "POST", "text": _("Publish shop"), "url": reverse("shuup_admin:shop.enable", kwargs={"pk": self.request.shop.pk}), "data": { "enable": True, "redirect": reverse("shuup_admin:dashboard") } }], icon_url="shuup_admin/img/publish.png" ) ) return context
def get_context_data(self, **kwargs): context = super(HomeView, self).get_context_data(**kwargs) shop = get_shop(self.request) context["blocks"] = blocks = [] context["tour_key"] = "home" context["tour_complete"] = is_tour_complete(shop, "home", user=self.request.user) wizard_complete = setup_wizard_complete(self.request) wizard_url = reverse("shuup_admin:wizard") wizard_actions = [] if not wizard_complete: wizard_actions.append({ "text": _("Complete wizard"), "url": wizard_url }) else: wizard_steps = load_setup_wizard_panes(shop=shop, request=self.request, visible_only=False) for step in wizard_steps: wizard_actions.append({ "text": step.title, "url": "%s?pane_id=%s" % (wizard_url, step.identifier), "no_redirect": True }) if wizard_actions: blocks.append( SimpleHelpBlock(_("Complete the setup wizard"), actions=wizard_actions, icon_url="shuup_admin/img/configure.png", priority=-1, done=wizard_complete)) for module in get_modules(): if not get_missing_permissions(self.request.user, module.get_required_permissions()): blocks.extend( module.get_help_blocks(request=self.request, kind="setup")) blocks.sort(key=lambda b: b.priority) if not blocks: blocks.append( SimpleHelpBlock(_("All set. Nothing to be configured"), actions=[], icon_url="shuup_admin/img/configure.png", priority=-1, done=True)) return context
def get_context_data(self, **kwargs): context = super(HomeView, self).get_context_data(**kwargs) shop = get_shop(self.request) context["blocks"] = blocks = [] context["tour_key"] = "home" context["tour_complete"] = is_tour_complete(shop, "home", user=self.request.user) wizard_complete = setup_wizard_complete(self.request) wizard_url = reverse("shuup_admin:wizard") wizard_actions = [] if not wizard_complete: wizard_actions.append({ "text": _("Complete wizard"), "url": wizard_url }) else: wizard_steps = load_setup_wizard_panes(shop=shop, request=self.request, visible_only=False) for step in wizard_steps: wizard_actions.append({ "text": step.title, "url": "%s?pane_id=%s" % (wizard_url, step.identifier), "no_redirect": True }) if wizard_actions: blocks.append( SimpleHelpBlock( _("Complete the setup wizard"), actions=wizard_actions, icon_url="shuup_admin/img/configure.png", priority=-1, done=wizard_complete ) ) for module in get_modules(): if not get_missing_permissions(self.request.user, module.get_required_permissions()): blocks.extend(module.get_help_blocks(request=self.request, kind="setup")) blocks.sort(key=lambda b: b.priority) if not blocks: blocks.append( SimpleHelpBlock( _("All set. Nothing to be configured"), actions=[], icon_url="shuup_admin/img/configure.png", priority=-1, done=True ) ) return context
def panes(self): shop = self.request.shop pane_id = self.request.GET.get("pane_id", None) panes = load_setup_wizard_panes( shop=shop, request=self.request, # if the user presses "previous" then "next" again, resubmit the form visible_only=self.request.method == "GET", ) if not panes and pane_id: pane = load_setup_wizard_pane(shop=shop, request=self.request, pane_id=pane_id) if pane: panes.append(pane) return panes
def panes(self): shop = Shop.objects.first() pane_id = self.request.GET.get("pane_id", None) panes = load_setup_wizard_panes( shop=shop, request=self.request, # if the user presses "previous" then "next" again, resubmit the form visible_only=self.request.method == "GET" ) if not panes and pane_id: pane = load_setup_wizard_pane( shop=shop, request=self.request, pane_id=pane_id ) if pane: panes.append(pane) return panes
def test_content_wizard_pane2(rf, admin_user, settings): settings.SHUUP_SETUP_WIZARD_PANE_SPEC = [ "shuup.admin.modules.content.views.ContentWizardPane" ] shop = get_default_shop() settings.INSTALLED_APPS.remove("shuup.simple_cms") settings.INSTALLED_APPS.remove("shuup.xtheme") settings.INSTALLED_APPS.remove("shuup.notify") # no pane, because ContentWizardPane is invalid (no necessary app installed) assert wizard.load_setup_wizard_panes(shop) == [] assert wizard.load_setup_wizard_panes(shop, visible_only=False) == [] pane_data = { 'pane_id': 'content', 'content-privacy_policy': True, 'content-terms_conditions': True, 'content-refund_policy': True, 'content-about_us': True, 'content-configure_footer': True, 'behaviors-order_confirm_notification': True } request = apply_request_middleware(rf.get("/"), skip_session=True) response = WizardView.as_view()(request) assert response.status_code == 302 assert response["Location"].startswith(reverse("shuup:login")) # add the simple cms - create only the pages and footer settings.INSTALLED_APPS.append("shuup.simple_cms") assert len(wizard.load_setup_wizard_panes(shop, visible_only=False)) == 1 request = apply_request_middleware(rf.post("/", data=pane_data), user=admin_user) response = WizardView.as_view()(request) assert response.status_code == 200 assert Page.objects.count() == 4 assert SavedViewConfig.objects.count() == 0 assert Script.objects.count() == 0 settings.INSTALLED_APPS.remove("shuup.simple_cms") Page.objects.all().delete() # add the xtheme - create the footer settings.INSTALLED_APPS.append("shuup.xtheme") assert len(wizard.load_setup_wizard_panes(shop, visible_only=False)) == 1 request = apply_request_middleware(rf.post("/", data=pane_data), user=admin_user) response = WizardView.as_view()(request) assert response.status_code == 200 assert Page.objects.count() == 0 assert SavedViewConfig.objects.count() == 1 assert Script.objects.count() == 0 settings.INSTALLED_APPS.remove("shuup.xtheme") SavedViewConfig.objects.all().delete() # add the notify - create only the notification settings.INSTALLED_APPS.append("shuup.notify") assert len(wizard.load_setup_wizard_panes(shop, visible_only=False)) == 1 request = apply_request_middleware(rf.post("/", data=pane_data), user=admin_user) response = WizardView.as_view()(request) assert response.status_code == 200 assert Page.objects.count() == 0 assert SavedViewConfig.objects.count() == 0 assert Script.objects.count() == 1 settings.INSTALLED_APPS.remove("shuup.notify") Script.objects.all().delete() settings.INSTALLED_APPS.append("shuup.simple_cms") settings.INSTALLED_APPS.append("shuup.xtheme") settings.INSTALLED_APPS.append("shuup.notify")
def test_content_wizard_pane2(rf, admin_user, settings): settings.SHUUP_SETUP_WIZARD_PANE_SPEC = [ "shuup.testing.modules.content.views.ContentWizardPane" ] shop = get_default_shop() request = apply_request_middleware(rf.get("/"), user=admin_user) settings.INSTALLED_APPS.remove("shuup.simple_cms") settings.INSTALLED_APPS.remove("shuup.xtheme") settings.INSTALLED_APPS.remove("shuup.notify") # no pane, because ContentWizardPane is invalid (no necessary app installed) assert wizard.load_setup_wizard_panes(shop, request) == [] assert wizard.load_setup_wizard_panes(shop, request, visible_only=False) == [] pane_data = { 'pane_id': 'content', 'content-privacy_policy': True, 'content-terms_conditions': True, 'content-refund_policy': True, 'content-about_us': True, 'content-configure_footer': True, 'behaviors-order_confirm_notification': True } request = apply_request_middleware(rf.get("/"), skip_session=True) response = WizardView.as_view()(request) assert response.status_code == 302 assert response["Location"].startswith(reverse("shuup:login")) # add the simple cms - create only the pages and footer request = apply_request_middleware(rf.get("/"), user=admin_user, skip_session=True) settings.INSTALLED_APPS.append("shuup.simple_cms") assert len(wizard.load_setup_wizard_panes(shop, request, visible_only=False)) == 1 request = apply_request_middleware(rf.post("/", data=pane_data), user=admin_user) response = WizardView.as_view()(request) assert response.status_code == 200 assert Page.objects.count() == 4 assert SavedViewConfig.objects.count() == 0 assert Script.objects.count() == 0 settings.INSTALLED_APPS.remove("shuup.simple_cms") Page.objects.all().delete() # add the xtheme - create the footer settings.INSTALLED_APPS.append("shuup.xtheme") assert len(wizard.load_setup_wizard_panes(shop, request, visible_only=False)) == 1 request = apply_request_middleware(rf.post("/", data=pane_data), user=admin_user) response = WizardView.as_view()(request) assert response.status_code == 200 assert Page.objects.count() == 0 assert SavedViewConfig.objects.count() == 1 assert Script.objects.count() == 0 settings.INSTALLED_APPS.remove("shuup.xtheme") SavedViewConfig.objects.all().delete() # add the notify - create only the notification settings.INSTALLED_APPS.append("shuup.notify") assert len(wizard.load_setup_wizard_panes(shop, request, visible_only=False)) == 1 request = apply_request_middleware(rf.post("/", data=pane_data), user=admin_user) response = WizardView.as_view()(request) assert response.status_code == 200 assert Page.objects.count() == 0 assert SavedViewConfig.objects.count() == 0 assert Script.objects.count() == 1 settings.INSTALLED_APPS.remove("shuup.notify") Script.objects.all().delete() settings.INSTALLED_APPS.append("shuup.simple_cms") settings.INSTALLED_APPS.append("shuup.xtheme") settings.INSTALLED_APPS.append("shuup.notify")