Example #1
0
class ListSettingsView(FormView):
    form_class = ColumnSettingsForm
    template_name = "shuup/admin/edit_settings.jinja"

    def dispatch(self, request, *args, **kwargs):
        module_str = "%s:%s" % (request.GET.get("module"), request.GET.get("model"))
        self.return_url = request.GET.get("return_url")
        self.model = load(module_str)
        self.settings = ViewSettings(self.model, [])
        return super(ListSettingsView, self).dispatch(request, *args, **kwargs)

    def get_form(self, form_class=None):
        kwargs = self.get_form_kwargs()
        return ColumnSettingsForm(self.settings, **kwargs)

    def get_initial(self):
        initial = super(ListSettingsView, self).get_initial()
        for col in self.settings.columns:
            key = self.settings.get_settings_key(col.id)
            initial.update({
                key: self.settings.get_config(col.id)
            })
        return initial

    def form_valid(self, form):
        for col, val in six.iteritems(form.cleaned_data):
            self.settings.set_config(col, val, use_key=True)
        messages.success(self.request, _("Settings saved"), fail_silently=True)
        return HttpResponseRedirect(reverse("shuup_admin:%s.list" % self.return_url))

    def get_context_data(self, **kwargs):
        context = super(ListSettingsView, self).get_context_data(**kwargs)
        context["toolbar"] = get_default_edit_toolbar(self, "settings_form", with_split_save=False)
        return context
Example #2
0
 def dispatch(self, request, *args, **kwargs):
     module_str = "%s:%s" % (request.GET.get("module"),
                             request.GET.get("model"))
     self.return_url = request.GET.get("return_url")
     self.model = load(module_str)
     self.settings = ViewSettings(self.model, [])
     return super(ListSettingsView, self).dispatch(request, *args, **kwargs)
Example #3
0
 def dispatch(self, request, *args, **kwargs):
     module_str = "%s:%s" % (request.GET.get("module"),
                             request.GET.get("model"))
     self.return_url = reverse("shuup_admin:%s.list" %
                               request.GET.get("return_url"))
     match = resolve(self.return_url)
     default_columns = load(
         "%s:%s" %
         (match.func.__module__, match.func.__name__)).default_columns
     self.model = load(module_str)
     self.settings = ViewSettings(self.model, default_columns)
     return super(ListSettingsView, self).dispatch(request, *args, **kwargs)
Example #4
0
    def __init__(self):
        super(PicotableListView, self).__init__()
        if self.mass_actions:
            self.default_columns = [
                Column("select",
                       "",
                       display="",
                       sortable=False,
                       linked=False,
                       class_name="text-center"),
            ] + self.default_columns

        self.settings = ViewSettings(self.model, self.default_columns)

        if self.mass_actions:
            if self.settings.columns:
                # settings.columns never have this empty one
                self.columns = [
                    Column(
                        "select", "", display="", sortable=False,
                        linked=False),  # empty column for selects
                ] + self.settings.columns
            else:
                self.columns = self.default_columns
        else:
            self.columns = (self.settings.columns or self.default_columns)
Example #5
0
 def dispatch(self, request, *args, **kwargs):
     module_str = "%s:%s" % (request.GET.get("module"), request.GET.get("model"))
     self.return_url = reverse("shuup_admin:%s.list" % request.GET.get("return_url"))
     match = resolve(self.return_url)
     default_columns = load("%s:%s" % (match.func.__module__, match.func.__name__)).default_columns
     self.model = load(module_str)
     self.settings = ViewSettings(self.model, default_columns)
     return super(ListSettingsView, self).dispatch(request, *args, **kwargs)
Example #6
0
 def process(self, request, ids):
     view_settings = ViewSettings(Product, [])
     response = HttpResponse(content_type='text/csv')
     response['Content-Disposition'] = 'attachment; filename="products.csv"'
     writer = csv.writer(response, delimiter=";", encoding='utf-8')
     writer.writerow([col.title for col in view_settings.columns])
     for product in Product.objects.filter(id__in=ids):
         row = []
         for dr in [col.id for col in view_settings.columns]:
             row.append(getattr(product, dr))
         writer.writerow(row)
     return response
Example #7
0
class ListSettingsView(FormView):
    form_class = ColumnSettingsForm
    template_name = "shuup/admin/edit_settings.jinja"

    def dispatch(self, request, *args, **kwargs):
        module_str = "%s:%s" % (request.GET.get("module"),
                                request.GET.get("model"))
        self.return_url = reverse("shuup_admin:%s.list" %
                                  request.GET.get("return_url"))
        match = resolve(self.return_url)
        default_columns = load(
            "%s:%s" %
            (match.func.__module__, match.func.__name__)).default_columns
        self.model = load(module_str)
        self.settings = ViewSettings(self.model, default_columns)
        return super(ListSettingsView, self).dispatch(request, *args, **kwargs)

    def get_form(self, form_class=None):
        kwargs = self.get_form_kwargs()
        return ColumnSettingsForm(self.settings, **kwargs)

    def get_initial(self):
        initial = super(ListSettingsView, self).get_initial()
        for col in self.settings.columns:
            key = self.settings.get_settings_key(col.id)
            initial.update({key: self.settings.get_config(col.id)})
        return initial

    def form_valid(self, form):
        for col, val in six.iteritems(form.cleaned_data):
            self.settings.set_config(col, val, use_key=True)
        messages.success(self.request, _("Settings saved"), fail_silently=True)
        return HttpResponseRedirect(self.return_url)

    def get_context_data(self, **kwargs):
        context = super(ListSettingsView, self).get_context_data(**kwargs)
        context["toolbar"] = get_default_edit_toolbar(self,
                                                      "settings_form",
                                                      with_split_save=False)
        return context
Example #8
0
 def dispatch(self, request, *args, **kwargs):
     module_str = "%s:%s" % (request.GET.get("module"), request.GET.get("model"))
     self.return_url = request.GET.get("return_url")
     self.model = load(module_str)
     self.settings = ViewSettings(self.model, [])
     return super(ListSettingsView, self).dispatch(request, *args, **kwargs)
Example #9
0
 def __init__(self):
     super(PicotableListView, self).__init__()
     self.settings = ViewSettings(self.model, self.default_columns)
     self.columns = (self.settings.columns or self.default_columns)
Example #10
0
class ListSettingsView(FormView):
    form_class = ColumnSettingsForm
    template_name = "shuup/admin/edit_settings.jinja"

    def dispatch(self, request, *args, **kwargs):
        module_str = "%s:%s" % (request.GET.get("module"), request.GET.get("model"))
        self.return_url = reverse("shuup_admin:%s.list" % request.GET.get("return_url"))
        match = resolve(self.return_url)
        default_columns = load("%s:%s" % (match.func.__module__, match.func.__name__)).default_columns
        self.model = load(module_str)
        self.settings = ViewSettings(self.model, default_columns)
        return super(ListSettingsView, self).dispatch(request, *args, **kwargs)

    def get_form(self, form_class=None):
        kwargs = self.get_form_kwargs()
        return ColumnSettingsForm(self.settings, **kwargs)

    def get_initial(self):
        initial = super(ListSettingsView, self).get_initial()
        for col in self.settings.columns:
            key = self.settings.get_settings_key(col.id)
            initial.update({
                key: self.settings.get_config(col.id)
            })
        return initial

    def form_valid(self, form):
        ordered_columns = self.request.POST.get("ordering", "").split("|")
        for idx, ordered_col in enumerate(ordered_columns):
            col_data = {
                "ordering": idx,
                "active": True
            }
            self.settings.set_config(ordered_col, col_data, use_key=True)

        for col, val in six.iteritems(form.cleaned_data):
            if col in ordered_columns:
                continue
            col_data = {
                "ordering": 99999,
                "active": False
            }
            self.settings.set_config(col, col_data, use_key=True)

        messages.success(self.request, _("Settings saved"), fail_silently=True)
        return HttpResponseRedirect(self.return_url)

    def get_context_data(self, **kwargs):
        context = super(ListSettingsView, self).get_context_data(**kwargs)
        context["toolbar"] = Toolbar([
            PostActionButton(
                icon="fa fa-save",
                form_id="settings_form",
                text=_("Save"),
                extra_css_class="btn-success",
            ),
            JavaScriptActionButton(
                icon="fa fa-cog",
                text=_("Reset Defaults"),
                onclick="resetDefaultValues()",
            )
        ])
        context["defaults"] = "|".join([self.settings.get_settings_key(c.id) for c in self.settings.default_columns])
        return context
Example #11
0
class ListSettingsView(FormView):
    form_class = ColumnSettingsForm
    template_name = "shuup/admin/edit_settings.jinja"

    def dispatch(self, request, *args, **kwargs):
        module_str = "%s:%s" % (request.GET.get("module"),
                                request.GET.get("model"))
        self.return_url = reverse("shuup_admin:%s.list" %
                                  request.GET.get("return_url"))
        match = resolve(self.return_url)
        default_columns = load(
            "%s:%s" %
            (match.func.__module__, match.func.__name__)).default_columns
        self.model = load(module_str)
        self.settings = ViewSettings(self.model, default_columns)
        return super(ListSettingsView, self).dispatch(request, *args, **kwargs)

    def get_form(self, form_class=None):
        kwargs = self.get_form_kwargs()
        return ColumnSettingsForm(self.settings, **kwargs)

    def get_initial(self):
        initial = super(ListSettingsView, self).get_initial()
        for col in self.settings.columns:
            key = self.settings.get_settings_key(col.id)
            initial.update({key: self.settings.get_config(col.id)})
        return initial

    def form_valid(self, form):
        ordered_columns = self.request.POST.get("ordering", "").split("|")
        for idx, ordered_col in enumerate(ordered_columns):
            col_data = {"ordering": idx, "active": True}
            self.settings.set_config(ordered_col, col_data, use_key=True)

        for col, val in six.iteritems(form.cleaned_data):
            if col in ordered_columns:
                continue
            col_data = {"ordering": 99999, "active": False}
            self.settings.set_config(col, col_data, use_key=True)

        messages.success(self.request, _("Settings saved"), fail_silently=True)
        return HttpResponseRedirect(self.return_url)

    def get_context_data(self, **kwargs):
        context = super(ListSettingsView, self).get_context_data(**kwargs)
        context["toolbar"] = Toolbar([
            PostActionButton(
                icon="fa fa-save",
                form_id="settings_form",
                text=_("Save"),
                extra_css_class="btn-success",
            ),
            JavaScriptActionButton(
                icon="fa fa-cog",
                text=_("Reset Defaults"),
                onclick="resetDefaultValues()",
            )
        ])
        context["defaults"] = "|".join([
            self.settings.get_settings_key(c.id)
            for c in self.settings.default_columns
        ])
        return context