示例#1
0
    def get_context_data(self, context):
        """
        A custom get_context_data method to return pages, possibly filtering expired pages
        based on the plugin's ``hide_expired`` setting
        """
        selected_pages = self.config.get("pages", [])
        show_all_pages = self.config.get("show_all_pages", True)
        hide_expired = self.config.get("hide_expired", False)

        pages_qs = Page.objects.prefetch_related("translations").not_deleted()

        if hide_expired:
            pages_qs = pages_qs.visible(context["request"].shop, user=context["request"].user)
        else:
            pages_qs = pages_qs.for_shop(context["request"].shop).for_user(user=context["request"].user)

        if not show_all_pages:
            pages_qs = pages_qs.filter(id__in=selected_pages)

        pages_qs = order_query_by_values(pages_qs, selected_pages)

        return {
            "title": self.get_translated_value("title"),
            "pages": pages_qs,
        }
示例#2
0
文件: plugins.py 项目: hrhneil/shuup
    def __init__(self, queryset, required=True, widget=None, label=None,
                 initial=None, help_text='', *args, **kwargs):
        super(OrderedModelMultipleChoiceField, self).__init__(
            queryset, required, widget, label,
            initial, help_text, *args, **kwargs)

        if initial:  # To show current choice order in plugin
            self.queryset = order_query_by_values(self.queryset, initial)
示例#3
0
    def __init__(self, queryset, required=True, widget=None, label=None, initial=None, help_text="", *args, **kwargs):
        super().__init__(
            queryset,
            required=required,
            widget=widget,
            label=label,
            initial=initial,
            help_text=help_text,
            *args,
            **kwargs
        )

        if initial:  # To show current choice order in plugin
            self.queryset = order_query_by_values(self.queryset, initial)
示例#4
0
 def _check_values(self, value):  # To save current choice order in DB
     queryset = super(OrderedModelMultipleChoiceField, self)._check_values(value)
     return order_query_by_values(queryset, value)