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
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 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 __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)
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 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
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
def __init__(self): super(PicotableListView, self).__init__() self.settings = ViewSettings(self.model, self.default_columns) self.columns = (self.settings.columns or self.default_columns)
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
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