def execute(self): from onegov.swissvotes.collections import TranslatablePageCollection pages = TranslatablePageCollection(self.session) subject = pages.by_id(self.subject_id) target = pages.by_id(self.target_id) if subject and target and subject != target: pages.move(subject=subject, target=target, direction=getattr(MoveDirection, self.direction))
def add_order_column_to_pagess(context): if context.has_column('swissvotes_page', 'order'): context.operations.drop_column('swissvotes_page', 'order') if not context.has_column('swissvotes_page', 'order'): context.operations.add_column('swissvotes_page', Column('order', Integer, default=2**16)) default = ('home', 'disclaimer', 'imprint', 'data-protection', 'dataset', 'about', 'contact') pages = TranslatablePageCollection(context.app.session()) for id in default: pages.setdefault(id) for order, id in enumerate(default): pages.by_id(id).order = order for page in pages.query().filter(TranslatablePage.id.notin_(default)): order += 1 page.order = order