6 from handlers_base
import *
10 class AdminBaseHandler(BaseHandler
):
14 class AdminIndexHandler(AdminBaseHandler
):
15 @tornado.web
.authenticated
17 self
.render("admin-index.html")
20 class AdminApiPlanetRenderMarkupHandler(AdminBaseHandler
):
21 @tornado.web
.authenticated
23 text
= self
.get_argument("text", "")
27 "html" : self
.planet
.render(text
),
32 class AdminPlanetHandler(AdminBaseHandler
):
33 @tornado.web
.authenticated
35 entries
= self
.planet
.get_entries(status
=None, limit
=50)
37 self
.render("admin-planet.html", entries
=entries
)
40 class AdminPlanetComposeHandler(AdminBaseHandler
):
41 @tornado.web
.authenticated
42 def get(self
, slug
=None):
46 entry
= self
.planet
.get_entry_by_slug(slug
)
48 raise tornado
.web
.HTTPError(404)
50 self
.render("admin-planet-compose.html", entry
=entry
)
52 @tornado.web
.authenticated
54 title
= self
.get_argument("title")
55 markdown
= self
.get_argument("markdown")
57 status
= self
.get_argument("status", "draft")
58 assert status
in ("draft", "published")
60 author
= self
.accounts
.find(self
.current_user
)
62 entry
= self
.planet
.create(title
=title
, markdown
=markdown
,
63 author
=author
, status
=status
)
65 self
.redirect("/planet")
68 class AdminPlanetEditHandler(AdminPlanetComposeHandler
):
69 @tornado.web
.authenticated
71 entry
= self
.planet
.get_entry_by_slug(slug
)
73 raise tornado
.web
.HTTPError(404)
75 entry
.title
= self
.get_argument("title")
76 entry
.markdown
= self
.get_argument("markdown")
78 entry
.status
= self
.get_argument("status", "draft")
80 self
.redirect("/planet")
83 class AdminPlanetPublishHandler(AdminBaseHandler
):
84 @tornado.web
.authenticated
86 entry
= self
.planet
.get_entry_by_slug(slug
)
88 raise tornado
.web
.HTTPError(404)
90 entry
.status
= "published"
91 entry
.published
= datetime
.datetime
.utcnow()
93 self
.redirect("/planet")
96 class AdminAccountsBaseHandler(AdminBaseHandler
):
100 class AdminAccountsHandler(AdminAccountsBaseHandler
):
101 @tornado.web
.authenticated
103 accounts
= self
.accounts
.list()
104 self
.render("admin-accounts.html", accounts
=accounts
)
107 class AdminAccountsEditHandler(AdminAccountsBaseHandler
):
108 @tornado.web
.authenticated
110 account
= self
.accounts
.search(id)
112 raise tornado
.web
.HTTPError(404)
114 self
.render("admin-accounts-edit.html", account
=account
)
117 class AdminAccountsDeleteHandler(AdminAccountsBaseHandler
):
118 @tornado.web
.authenticated
120 account
= self
.accounts
.search(id)
122 raise tornado
.web
.HTTPError(404)
124 self
.accounts
.delete(id)
125 self
.redirect("/accounts")
128 class AdminMirrorsBaseHandler(AdminBaseHandler
):
132 class AdminMirrorsHandler(AdminMirrorsBaseHandler
):
133 @tornado.web
.authenticated
135 mirrors
= self
.mirrors
.get_all()
137 self
.render("admin-mirrors.html", mirrors
=mirrors
)
140 class AdminMirrorsUpdateHandler(AdminMirrorsBaseHandler
):
141 @tornado.web
.authenticated
143 self
.mirrors
.check_all()
144 self
.redirect("/mirrors")
147 class AdminMirrorsCreateHandler(AdminMirrorsBaseHandler
):
148 @tornado.web
.authenticated
149 def get(self
, id=None):
151 mirror
= self
.db
.get("SELECT * FROM mirrors WHERE id = %s", id)
153 mirror
= tornado
.database
.Row(
165 self
.render("admin-mirrors-create.html", mirror
=mirror
)
167 @tornado.web
.authenticated
168 def post(self
, id=None):
169 args
= tornado
.database
.Row()
170 for key
in ("id", "hostname", "owner", "location", "path", "releases",
171 "pakfire2", "pakfire3", "disabled"):
172 args
[key
] = self
.get_argument(key
, "")
175 if not self
.mirrors
.get(args
.id):
176 raise tornado
.web
.HTTPError(404)
178 #self.db.execute("""UPDATE mirrors SET
179 # hostname = %s, owner = %s, location = %s, path = %s, mirror = %s,
180 # pakfire2 = %s, pakfire3 = %s, disabled = %s
181 # WHERE id = %s""", args.hostname, args.owner, args.location,
182 # args.path, args.mirror, args.pakfire2, args.pakfire3, args.disabled,
184 self
.db
.update("mirrors", args
.id, **args
)
187 #self.db.execute("""INSERT INTO
188 # mirrors(hostname, owner, location, path, mirror, pakfire2, pakfire3, disabled)
189 # VALUES(%s, %s, %s, %s, %s, %s, %s, %s)""", args.hostname, args.owner,
190 # args.location, args.path, args.mirror, args.pakfire2, args.pakfire3, args.disabled)
191 self
.db
.insert("mirrors", **args
)
193 # Update database information
194 self
.mirrors
.check_all()
196 self
.redirect("/mirrors")
199 class AdminMirrorsEditHandler(AdminMirrorsCreateHandler
):
203 class AdminMirrorsDeleteHandler(AdminMirrorsBaseHandler
):
204 @tornado.web
.authenticated
206 self
.db
.execute("DELETE FROM mirrors WHERE id=%s", id)
207 self
.db
.execute("DELETE FROM mirror_files WHERE mirror=%s", id)
208 self
.redirect("/mirrors")
211 class AdminMirrorsDetailsHandler(AdminMirrorsBaseHandler
):
212 @tornado.web
.authenticated
214 mirror
= self
.mirrors
.get(id)
216 raise tornado
.web
.HTTPError(404)
218 self
.render("admin-mirrors-details.html", mirror
=mirror
)
221 class AdminNewsBaseHandler(AdminBaseHandler
):
224 return self
.backend
.news
227 class AdminNewsHandler(AdminNewsBaseHandler
):
228 @tornado.web
.authenticated
230 news
= self
.news
.get_all()
232 self
.render("admin-news.html", news
=news
)
235 class AdminNewsCreateHandler(AdminNewsBaseHandler
):
236 @tornado.web
.authenticated
237 def get(self
, id=None):
241 self
.render("admin-news-create.html", news
=news
)
244 class AdminNewsEditHandler(AdminNewsCreateHandler
):
248 class AdminDownloadsHandler(AdminBaseHandler
):
249 @tornado.web
.authenticated
251 self
.render("admin-downloads.html",
252 downloads_total
= self
.downloads
.total
,
253 downloads_today
= self
.downloads
.today
,
254 downloads_yesterday
= self
.downloads
.yesterday
,
255 downloads_locations_today
= self
.downloads
.get_countries("today"),
256 downloads_locations_total
= self
.downloads
.get_countries(),
260 class AdminDownloadsMirrorsHandler(AdminBaseHandler
):
261 @tornado.web
.authenticated
263 self
.render("admin-downloads-mirrors.html",
264 mirror_load_total
= self
.downloads
.get_mirror_load(),
265 mirror_load_today
= self
.downloads
.get_mirror_load("today"),