예제 #1
0
    def _build_existing_product(self):
        product = self.product
        # :type product: shoop.core.models.Product

        media_button = DropdownItem(
            text=_("Manage Media"),
            icon="fa fa-picture-o",
            url=reverse("shoop_admin:product.edit_media",
                        kwargs={"pk": product.pk}),
        )
        cross_sell_button = DropdownItem(
            text=_("Manage Cross-Selling"),
            icon="fa fa-random",
            url=reverse("shoop_admin:product.edit_cross_sell",
                        kwargs={"pk": product.pk}),
        )
        menu_items = [
            DropdownHeader(text=_("Media")), media_button,
            DropdownDivider(),
            DropdownHeader(text=_("Cross-Selling")), cross_sell_button
        ]

        for item in self._get_variation_and_package_menu_items(product):
            menu_items.append(item)

        self.append(
            DropdownActionButton(
                menu_items,
                icon="fa fa-star",
                text=_(u"Actions"),
                extra_css_class="btn-info",
            ))
예제 #2
0
파일: toolbars.py 프로젝트: teserak/shoop
    def _get_variation_and_package_menu_items(self, product):
        is_variation_product = (product.is_variation_parent() or product.is_variation_child())
        if is_variation_product:
            for item in self._get_variation_menu_items(product):
                yield item

        is_package_product = (product.is_package_parent() or product.is_package_child())
        if is_package_product:
            for item in self._get_package_menu_items(product):
                yield item

        if not (is_variation_product or is_package_product):
            for item in self._get_header_item(_("Packages")):
                yield item
            yield DropdownItem(
                text=_("Convert to Package Parent"),
                icon="fa fa-retweet",
                url=self._get_package_url(product),
            )
            for item in self._get_header_item(_("Variations")):
                yield item
            yield DropdownItem(
                text=_("Convert to Variation Parent"),
                icon="fa fa-retweet",
                url=self._get_variation_url(product),
            )
예제 #3
0
 def _get_parent_and_sibling_items(self, parent, siblings):
     yield DropdownItem(
         text=_("Parent: %s") % parent,
         icon="fa fa-eye",
         url=get_model_url(parent),
     )
     for sib in siblings:
         yield DropdownItem(
             text=_("Sibling: %s") % sib,
             icon="fa fa-eye",
             url=get_model_url(sib),
         )
예제 #4
0
    def get_menu_items(self):
        shipment_items = []
        for shipment_id in self.order.shipments.values_list("pk", flat=True):
            shipment_items.append(
                DropdownItem(text=_("Get Delivery Slip (Shipment %(id)s)") %
                             {"id": shipment_id},
                             icon="fa fa-truck",
                             url=reverse("shoop_admin:printouts.delivery_pdf",
                                         kwargs={"shipment_pk": shipment_id})))

        return shipment_items + [
            DropdownItem(text=_("Get Order Confirmation"),
                         icon="fa fa-money",
                         url=reverse("shoop_admin:printouts.confirmation_pdf",
                                     kwargs={"order_pk": self.order.pk}))
        ]
예제 #5
0
 def _get_children_items(self, children):
     for child in children:
         yield DropdownItem(
             text=_("Child: %s") % child,
             icon="fa fa-eye",
             url=get_model_url(child),
         )
예제 #6
0
파일: toolbars.py 프로젝트: teserak/shoop
 def _get_variation_menu_items(self, product):
     for item in self._get_header_item(_("Variations")):
         yield item
     yield DropdownItem(
         text=_("Manage Variations"),
         icon="fa fa-sitemap",
         url=self._get_variation_url(product),
     )
     if product.is_variation_parent():
         for child in self._get_children_items(product.variation_children.all()):
             yield child
     elif product.is_variation_child():
         for item in self._get_parent_and_sibling_items(product.variation_parent, product.get_variation_siblings()):
             yield item
예제 #7
0
파일: toolbars.py 프로젝트: teserak/shoop
 def _get_package_menu_items(self, product):
     for item in self._get_header_item(_("Packages")):
         yield item
     yield DropdownItem(
         text=_("Manage Package"),
         icon="fa fa-cube",
         url=self._get_package_url(product),
     )
     if product.is_package_parent():
         for child in self._get_children_items(product.get_all_package_children()):
             yield child
     elif product.is_package_child():
         for parent in product.get_all_package_parents():
             for item in self._get_parent_and_sibling_items(
                     parent, [sib for sib in parent.get_all_package_children() if sib != product]):
                 yield item
예제 #8
0
    def _get_variation_and_package_menu_items(self, product):
        variation_parent = product.is_variation_parent()
        variation_child = product.is_variation_child()
        package_parent = product.is_package_parent()
        variation_url = reverse("shoop_admin:product.edit_variation",
                                kwargs={"pk": product.pk})
        if variation_parent:
            yield DropdownDivider()
            yield DropdownHeader(text=_("Variations"))
            yield DropdownItem(
                text=_("Manage Variations"),
                icon="fa fa-sitemap",
                url=variation_url,
            )
            for child in product.variation_children.all():
                yield DropdownItem(
                    text=_("Child: %s") % child,
                    icon="fa fa-eye",
                    url=get_model_url(child),
                )
        elif variation_child:
            yield DropdownDivider()
            yield DropdownHeader(text=_("Variations"))
            parent = product.variation_parent
            yield DropdownItem(
                text=_("Manage Variations"),
                icon="fa fa-sitemap",
                url=variation_url,
            )
            yield DropdownItem(
                text=_("Parent: %s") % parent,
                icon="fa fa-eye",
                url=get_model_url(parent),
            )
            for sib in product.get_variation_siblings():
                yield DropdownItem(
                    text=_("Sibling: %s") % sib,
                    icon="fa fa-eye",
                    url=get_model_url(sib),
                )
        elif package_parent:
            yield DropdownDivider()
            yield DropdownHeader(text=_("Variations"))
            yield DropdownItem(
                text=_("Manage Package"),
                icon="fa fa-cube",
                url="#",  # TODO: Implement manage packages
            )
            for child in product.get_all_package_children():
                yield DropdownItem(
                    text=_("Child: %s") % child,
                    icon="fa fa-eye",
                    url=get_model_url(child),
                )

        package_parents = list(product.get_all_package_parents())
        if package_parents:
            yield DropdownDivider()
            yield DropdownHeader(text=_("Variations"))
            for parent in package_parents:
                yield DropdownItem(
                    text=_("Package Parent: %s") % parent,
                    icon="fa fa-eye",
                    url=get_model_url(parent),
                )

        if not (variation_parent or variation_child or package_parent):
            yield DropdownDivider()
            yield DropdownHeader(text=_("Variations"))
            yield DropdownItem(
                text=_("Convert to Variation Parent"),
                icon="fa fa-retweet",
                url=variation_url,
            )
예제 #9
0
    def _build_existing_user(self):
        user = self.user
        change_password_button = DropdownItem(url=reverse(
            "shoop_admin:user.change-password", kwargs={"pk": user.pk}),
                                              text=_(u"Change Password"),
                                              icon="fa fa-exchange")
        reset_password_button = DropdownItem(
            url=reverse("shoop_admin:user.reset-password",
                        kwargs={"pk": user.pk}),
            disable_reason=(_("User has no email address")
                            if not getattr(user, 'email', '') else None),
            text=_(u"Send Password Reset Email"),
            icon="fa fa-envelope")
        permissions_button = DropdownItem(url=reverse(
            "shoop_admin:user.change-permissions", kwargs={"pk": user.pk}),
                                          text=_(u"Edit Permissions"),
                                          icon="fa fa-lock")
        menu_items = [
            change_password_button, reset_password_button, permissions_button,
            DropdownDivider()
        ]

        person_contact = PersonContact.objects.filter(user=user).first()
        if person_contact:
            contact_url = reverse("shoop_admin:contact.detail",
                                  kwargs={"pk": person_contact.pk})
            menu_items.append(
                DropdownItem(
                    url=contact_url,
                    icon="fa fa-search",
                    text=_(u"Contact Details"),
                ))
        else:
            contact_url = reverse(
                "shoop_admin:contact.new") + "?user_id=%s" % user.pk
            menu_items.append(
                DropdownItem(
                    url=contact_url,
                    icon="fa fa-plus",
                    text=_(u"New Contact"),
                    tooltip=_(
                        "Create a new contact and associate it with this user")
                ))
        self.append(
            DropdownActionButton(
                menu_items,
                icon="fa fa-star",
                text=_(u"Actions"),
                extra_css_class="btn-info",
            ))
        if not user.is_active:
            self.append(
                PostActionButton(
                    post_url=self.request.path,
                    name="set_is_active",
                    value="1",
                    icon="fa fa-check-circle",
                    text=_(u"Activate User"),
                    extra_css_class="btn-gray",
                ))
        else:
            self.append(
                PostActionButton(
                    post_url=self.request.path,
                    name="set_is_active",
                    value="0",
                    icon="fa fa-times-circle",
                    text=_(u"Deactivate User"),
                    extra_css_class="btn-gray",
                ))