def news_locale_detail(req, locale, id): new = New(id) if not new.get(req): raise SERVER_RETURN(state.HTTP_NOT_FOUND) return generate_page(req, "news_detail.html", new=new, locale=locale)
def admin_news_mod(req, id): check_login(req) match_right(req, module_rights) new = New(id) if not new.get(req): raise SERVER_RETURN(state.HTTP_NOT_FOUND) if not do_check_right(req, "news_editor") and new.author_id != req.login.id: raise SERVER_RETURN(state.HTTP_FORBIDDEN) if req.method == "POST": new.bind(req.form) error = new.mod(req) if error != new: return generate_page(req, "admin/news_mod.html", new=new, error=error) if not new.get(req): raise SERVER_RETURN(state.HTTP_NOT_FOUND) return generate_page(req, "admin/news_mod.html", new=new)
def admin_news_enable(req, id): check_login(req, "/log_in?referer=/admin/news") match_right(req, module_rights) check_referer(req, "/admin/news") new = New(id) if not new.get(req): raise SERVER_RETURN(state.HTTP_NOT_FOUND) if (not do_check_right(req, "news_editor")) and ( not (new.author_id == req.login.id and new.public_date.year == 1970) ): raise SERVER_RETURN(state.HTTP_FORBIDDEN) n_state = int(req.uri.endswith("/enable")) n_state = (n_state * 2) if new.public_date.year > 1970 else n_state new.set_state(req, n_state) redirect(req, "/admin/news")
def test_state(req, new): new.set_state(req, 1) second = New(new.id) second.get(req) assert second.state == 1
def test_mod(req, new): new.title = 'Super title' new.mod(req) second = New(new.id) second.get(req) assert new.title == second.title
def test_get(req, new): second = New(new.id) second.get(req) for attr in ('id', 'title', 'body', 'author_id', 'locale', 'state', 'data'): assert getattr(new, attr) == getattr(second, attr)