def handle_save_action(self, action, data):
        if form.applyChanges(self.context, self.form_fields, data,
                             self.adapters):
            zope.event.notify(
                zope.lifecycleevent.ObjectModifiedEvent(self.context))
            zope.event.notify(ploneformbase.EditSavedEvent(self.context))
            self.status = "Changes saved"
        else:
            zope.event.notify(ploneformbase.EditCancelledEvent(self.context))
            self.status = "No changes"

        settings = PageSliderSettings(self.context)
        slides = settings.slides
        index = data.get('index', -1)
        value = {
            'html': data['slide'],
            'overlay': data['overlay'],
            'on_hover': data['on_hover']
        }

        if index == -1:
            slides.append(value)
            index = len(slides) - 1
        else:
            slides[index] = value

        settings.slides = slides

        url = getMultiAdapter((self.context, self.request),
                              name='absolute_url')() + "/@@slider-settings"
        self.request.response.redirect(url)
    def __call__(self):
        order = [int(i) for i in self.request.get('order[]')]
        settings = PageSliderSettings(self.context)
        # first verify same size
        slides = settings.slides
        if len(order) != len(slides):
            self.request.response.setStatus(status=403,
                                            reason="missing slides")

        newslides = []
        for index in order:
            newslides.append(slides[index])

        settings.slides = newslides
        return 'done'
    def __call__(self):
        order = [int(i) for i in self.request.get('order[]')]
        settings = PageSliderSettings(self.context)
        # first verify same size
        slides = settings.slides
        if len(order) != len(slides):
            self.request.response.setStatus(status=403,
                                            reason="missing slides")

        newslides = []
        for index in order:
            newslides.append(slides[index])

        settings.slides = newslides
        return 'done'
    def __init__(self, context, request):
        super(SlidesView, self).__init__(context, request)

        self.settings = PageSliderSettings(context.context)
        self.call_context = self.context.context
        self.slider_url = self.context.context.absolute_url()
        # since this uses the same .pt file
        self.css = slider_settings_css(self.settings)
 def get_settings(self):
     return PageSliderSettings(self.context)
 def __init__(self, context, request):
     super(SlideView, self).__init__(context, request)
     self.settings = PageSliderSettings(self.context.context)