def sort_page(request): page_list = request.params['page_list'] parent_id = request.matchdict['target'] if not page_list: return HTTPFound(location=request.environ['HTTP_REFERER']) else: page_list = json.loads("[" + page_list + "]") def sort_child(children, parent): for i, child in enumerate(children): page_id = child['id'] ch = DBSession.query(Page).filter_by(id=page_id).one() ch.parent_id = parent ch.position = i DBSession.add(ch) if 'children' in child: sort_child(child['children'], ch.id) for i, page in enumerate(page_list): page_id = page['id'] p = DBSession.query(Page).filter_by(id=page_id).one() if not page_id: p.parent_id = 0 else: p.parent_id = parent_id p.position = i DBSession.add(p) children = page['children'] if children: sort_child(children, p.id) return HTTPFound(location=request.environ['HTTP_REFERER'])
def add_page(request): user = authenticated_userid(request) if 'form.submitted' in request.params: name = request.params['name'] content = request.params['content'] if 'visible' in request.params: visible = True else: visible = False max_id = DBSession.query(func.max(Page.id)).all() if max_id[0][0]: position = max_id[0][0] + 1 else: position = 1 page = Page(user, name, content, position, visible) if 'parent_id' in request.params: page.parent_id = request.params['parent_id'] else: page.parent_id = 0 if 'lang' in request.params: page.language = request.params['lang'] if 'translated_page' in request.params: page.orign_page_id = request.params['translated_page'] page.created_by = user page.tags = [] tags = re.split(r'[,;]+', request.params['tags']) tags = filter(lambda x: x not in (None, '', ' '), tags) tags = map(lambda x: x.strip(), tags) tags = list(set(tags)) for tag in tags: exist_tag = DBSession.query(Tag).filter_by(name=tag).all() if exist_tag: tag = exist_tag[0] else: tag = Tag(tag) page.tags.append(tag) DBSession.add(page) return HTTPFound(location=request.route_url('admin')) # if it child page if 'parent_id' in request.params: parent_id = request.params['parent_id'] else: parent_id = '' LOCALE = get_locale_name(request) # if it translated page if 'add_translate' in request.params: translated_page_id = request.params['translated_page'] translated_page = DBSession.query(Page).\ filter_by(id=translated_page_id).one() lang_list = get_lang(translated_page) else: lang_list = translated_page = None page = Page(user, '', '', '', '') return dict(page=page, parent_id=parent_id, translate_lang=lang_list, translated=translated_page, LOCALE=LOCALE)
def sort_child(children, parent): for i, child in enumerate(children): page_id = child['id'] ch = DBSession.query(Page).filter_by(id=page_id).one() ch.parent_id = parent ch.position = i DBSession.add(ch) if 'children' in child: sort_child(child['children'], ch.id)
def add_user(request): if 'form.submitted' in request.params: login = request.params['user_login'] groups = request.params['user_groups'] password = request.params['user_password'] user = User(login=login, password=password, groups=groups) DBSession.add(user) return HTTPFound(location=request.route_path( 'admin_object', object="user", action="view")) user = User('', '', '') return dict(user=user)
def add_user(request): if 'form.submitted' in request.params: login = request.params['user_login'] groups = request.params['user_groups'] password = request.params['user_password'] user = User(login=login, password=password, groups=groups) DBSession.add(user) return HTTPFound(location=request.route_path('admin_object', object="user", action="view")) user = User('', '', '') return dict(user=user)
def edit_user(request): user_id = request.matchdict['target'] user = DBSession.query(User).filter_by(id=user_id).one() if 'form.submitted' in request.params: user.login = request.params['user_login'] password = request.params['user_password'] user.groups = request.params['user_groups'] if password: user.password = password DBSession.add(user) return HTTPFound(location=request.route_path( 'admin_object', object="user", action="view")) return dict(user=user)
def edit_user(request): user_id = request.matchdict['target'] user = DBSession.query(User).filter_by(id=user_id).one() if 'form.submitted' in request.params: user.login = request.params['user_login'] password = request.params['user_password'] user.groups = request.params['user_groups'] if password: user.password = password DBSession.add(user) return HTTPFound(location=request.route_path('admin_object', object="user", action="view")) return dict(user=user)
def settings(request): settings = get_settings() if 'form.submitted' in request.params: for key, value in settings.items(): key_form = request.params[key] if not settings[key]: settings[key] = Settings(key, key_form) else: settings[key].value = key_form DBSession.add(settings[key]) return HTTPFound(location=request.route_url('admin')) return dict(settings=settings)
def del_page(request): page_id = request.matchdict['target'] page = DBSession.query(Page).filter_by(id=page_id).one() parent_id = page.parent_id childs = DBSession.query(Page).filter(Page.parent_id == page_id).all() for child in childs: child.parent_id = parent_id DBSession.add(child) translations = DBSession.query(Page).\ filter_by(orign_page_id=page_id).all() page = DBSession.query(Page).filter_by(id=page_id).one() DBSession.delete(page) DBSession.flush() for trans in translations: DBSession.delete(trans) DBSession.flush() return HTTPFound(location=request.route_url('admin'))
def edit_page(request): user = authenticated_userid(request) page_id = request.matchdict['target'] page = DBSession.query(Page).filter_by(id=page_id).one() if 'form.submitted' in request.params: page.name = request.params['name'] page.content = request.params['content'] page.updated_by = user if 'visible' in request.params: page.visible = True else: page.visible = False page.tags = [] tags = re.split(r'[,;]+', request.params['tags']) tags = filter(lambda x: x not in (None, '', ' '), tags) tags = map(lambda x: x.strip(), tags) tags = list(set(tags)) for tag in tags: exist_tag = DBSession.query(Tag).filter_by(name=tag).all() if exist_tag: tag = exist_tag[0] else: tag = Tag(tag) page.tags.append(tag) DBSession.add(page) return HTTPFound(location=request.environ['HTTP_REFERER']) # if it translated page LOCALE = get_locale_name(request) translated_page = DBSession.query(Page).\ filter_by(id=page.orign_page_id).all() translated_page = translated_page[0] if translated_page else None if translated_page: exist_translations = DBSession.query(Page).\ filter_by(orign_page_id=translated_page.id).all() lang_list = get_lang(translated_page) else: exist_translations = DBSession.query(Page).\ filter_by(orign_page_id=page.id).all() lang_list = None return dict(page=page, translated=translated_page, LOCALE=LOCALE, exist_translations=exist_translations, translate_lang=lang_list)