Rev 412 | Blame | Compare with Previous | Last modification | View Log | RSS feed
'''Created on 04-Aug-2010@author: ashish'''import tornado.httpserverimport tornado.ioloopimport tornado.webfrom shop2020.logistics.external.xlsprocessor import get_xls_for_today,\get_sample_xml, get_html_pageclass BaseHandler(tornado.web.RequestHandler):def get_current_user(self):return self.get_secure_cookie("user")def get_warehouse(self):return self.get_secure_cookie("warehouse")class MainHandler(BaseHandler):@tornado.web.authenticateddef get(self):name = tornado.escape.xhtml_escape(self.current_user)self.write("Hello, " + name)class OptionHandler(BaseHandler):@tornado.web.authenticateddef get(self):self.set_header("Content-Type", "text/html")self.write(get_html_page())passclass ArxHandler(BaseHandler):def get(self):self.set_header("Content-Type", "text/xml")self.write(get_sample_xml())class PaymentsHandler(BaseHandler):def get(self):url = self.get_argument("url")nonce = self.get_argument("nonce")amount = self.get_argument("amount")class ListHandler(BaseHandler):@tornado.web.authenticateddef get(self):self.name = tornado.escape.xhtml_escape(self.current_user)self.warehouse = tornado.escape.xhtml_escape(self.get_warehouse())self.set_header("Content-Type", "application/vnd.ms-excel")self.set_header("Content-Disposition", "attachment;filename=List Of Shipment.xls;")self.write(get_xls_for_today(self.warehouse))def get_xls_for_warehouse(self):passclass LoginHandler(BaseHandler):def get(self):self.write('<html><body><form action="/login" method="post">''Name: <input type="text" name="name">''Password:<input type="password" name="password">''<input type="submit" value="Sign in">''</form></body></html>')def post(self):if self.get_auth(self.get_argument("name"), self.get_argument("password")):self.set_secure_cookie("user", self.get_argument("name"))self.set_secure_cookie("warehouse", self.get_warehouse_id(self.get_argument("name")))self.redirect("/list")else:self.redirect("/login")def get_auth(self, user, password):return Truedef get_warehouse_id(self, user):if user == "Ashish":return "all"return "1"settings = {"cookie_secret": "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vx=","login_url": "/login",}application = tornado.web.Application([(r"/", MainHandler),(r"/login", LoginHandler),(r"/list", ListHandler),(r"/arx", ArxHandler),(r"/opt", OptionHandler),], **settings)if __name__ == "__main__":http_server = tornado.httpserver.HTTPServer(application)http_server.listen(8888)tornado.ioloop.IOLoop.instance().start()