-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathmain.py
More file actions
132 lines (82 loc) · 3.26 KB
/
Copy pathmain.py
File metadata and controls
132 lines (82 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/usr/bin/env python
import os.path
import tornado.escape
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.escape import json_encode
import logging
#Mongo
from mongoengine import *
import models
import bson
from bson import json_util
import csv
import json
import re
import bcrypt
from datetime import datetime
from utils import *
from handlers.handlers import *
from handlers.admin_handlers import *
from handlers.modules import *
from tornado.options import define
define("port", default=5000, help="run on the given port", type=int)
#Connect to mongo
connect('db', host=os.environ.get('MONGOLAB_URI'))
# application settings and handle mapping info
class Application(tornado.web.Application):
def __init__(self):
self.stats = StatsGenerator()
self.files = FileGenerator()
self.tools = Tools()
self.form = Form()
settings = dict(
template_path=os.path.join(os.path.dirname(__file__), "templates"),
static_path=os.path.join(os.path.dirname(__file__), "static"),
ui_modules={
"datetime": datetime,
'Form': FormModule,
'FormData':FormDataModule,
'AgencyAdd':AgencyAddModule,
'AdminSettings':AdminSettingsModule},
debug=True,
cookie_secret=os.environ.get('COOKIE_SECRET'),
xsrf_cookies=True,
re=re,
login_url="/login"
)
handlers = [
(r'/(favicon.ico)', tornado.web.StaticFileHandler, {"path": ""}),
(r"/?", IndexHandler),
(r"/(?:([A-Za-z]{2})/)?", MainHandler),
(r"/(?:([A-Za-z]{2})/)?submitCompany/?", SubmitCompanyHandler),
(r"/(?:([A-Za-z]{2})/)?(edit|admin-edit)/([a-zA-Z0-9]{24})/?", EditCompanyHandler),
(r"/(?:([A-Za-z]{2})/)?addData/([a-zA-Z0-9]{24})/?", SubmitDataHandler),
(r"/(?:([A-Za-z]{2})/)?(list|candidates)/?", ListHandler),
(r"/(?:([A-Za-z]{2})/)?roundtables/(?:([A-Za-z]{3})?)/?", RoundtableHandler),
(r"/(?:([A-Za-z]{2})/)?admin/?(companies)?/?", CompanyAdminHandler),
(r"/(?:([A-Za-z]{2})/)?admin/agencies/?", AgencyAdminHandler),
(r"/([0-9]{1})/?", TestHandler),
(r"/delete/([a-zA-Z0-9]{24})/?", DeleteCompanyHandler),
(r"/validate/?", ValidateHandler),
(r"/admin/agency-edit/(?:([a-zA-Z0-9]{24})?)/?", AdminEditAgencyHandler),
(r"/admin/company-add/?", NewCompanyHandler),
(r'/(?:([A-Za-z]{2})/)?download/(.*)/?', FileDownloadHandler),
(r'/(?:([A-Za-z]{2})/)?login/?', LoginHandler),
(r'/logout/?', LogoutHandler),
(r'/register/?', RegisterHandler),
(r'/404/?', NotFoundHandler),
(r"/(?:([A-Za-z]{2})/)?([^/]+)/?", StaticPageHandler),
(r'/.*', NotFoundHandler)
]
tornado.web.Application.__init__(self, handlers, **settings)
def main():
tornado.options.parse_command_line()
http_server = tornado.httpserver.HTTPServer(Application())
http_server.listen(tornado.options.options.port)
# start it up
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
main()