Example #1
0
    def edit(self):
        try:
            message = "UNDEFINED"
            pageinfo = PageInfo.get(self.session,
                                    self.request.params['translation_id'])
            html = self.request.params['translation_html']
            pageinfo.content = html
            self.session.flush()

        except ValueError:
            message = self.prepare_response(status=400,
                                    message=u'Contenuto non valido')

        except KeyError:
            message = self.prepare_response(status=400,
                                    message=u'Parametri mancanti')

        except NoResultFound:
            message = self.prepare_response(status=404,
                                    message=u'Nessuna risorsa trovata')

        except Exception:
            self.log.exception('Unexpected error during content update')
            message = self.prepare_response(status=500,
                                    message=u"Errore nell'aggiornamento")

        else:
            message = self.prepare_response(
                        status=200,
                        message=u'Contenuto aggiornato correttamente',
                        page=pageinfo)

        finally:
            return dict(msg=message)
Example #2
0
    def page_banners(self):
        res = dict(success=False)
        try:
            name = self.request.params['name']
            id_ = self.request.params['nodeinfo_id']
            source = self.request.params['file']
            page = PageInfo.get(self.session, id_)
            self.log.debug("Updating banner for page '{}'".format(page.label))
            for banner in page.node.banners:
                banner.delete()
            page.node.banners = []

            page.node.banners.append(
                Banner(source=source.file, name=name, session=self.session)
            )
            self.session.flush()

        except Exception:
            self.session.rollback()
            message = u"Errore nella rimozione del banner"
            res['success'] = False
            res['error'] = self.request.translate(message)
            self.log.exception("Error removing banner")

        else:
            res['success'] = True
            self.session.commit()
            self.proxy.invalidate(url=page.url)

        finally:
            return res
Example #3
0
 def test_show_page(self):
     from aybu.website.views import show_page
     self.add_test_data_to_db()
     self.ctx = PageInfo.get(self.session, 3)
     dummy_rendererer = self.configurator.testing_add_renderer(
                                     self.ctx.node.view.fs_view_path)
     show_page(self.ctx, self.req)
     dummy_rendererer.assert_(page=self.ctx, request=self.req)
Example #4
0
    def test_redirect_to_homepage(self):
        from aybu.website.views import redirect_to_homepage
        self.add_test_data_to_db()
        hpage_it = PageInfo.get(self.session, 3)
        hpage_en = PageInfo.get(self.session, 4)

        with self.assertRaises(HTTPMovedPermanently) as cm:
            redirect_to_homepage(self.ctx, self.req)
        self.assertEqual(cm.exception.location, hpage_en.url)

        self.req.accept_language = "en-US,en"
        with self.assertRaises(HTTPMovedPermanently) as cm:
            redirect_to_homepage(self.ctx, self.req)
        self.assertEqual(cm.exception.location, hpage_en.url)

        self.req.accept_language = "it-IT,it"
        with self.assertRaises(HTTPMovedPermanently) as cm:
            redirect_to_homepage(self.ctx, self.req)
        self.assertEqual(cm.exception.location, hpage_it.url)

        self.session.commit()
Example #5
0
    def remove_page_banners(self):
        res = dict(success=False)
        try:
            page = PageInfo.get(self.session,
                                self.request.params['nodeinfo_id'])
            for banner in page.node.banners:
                banner.delete()

            self.session.flush()

        except Exception:
            self.session.rollback()
            message = u"Errore nella rimozione del banner"
            res['success'] = False
            res['error'] = self.request.translate(message)
            self.log.exception("Error removing banner")

        else:
            res['success'] = True
            self.session.commit()
            self.proxy.invalidate(url=page.url)

        finally:
            return res