From 3bfa3abee41afd4e870cddac5fd37ecbba63dac2 Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Fri, 1 Dec 2017 12:41:14 +0100
Subject: [PATCH] Moved handler registration to server.py to reduce module
 dependencies

---
 edit.py   | 12 ------------
 jobs.py   | 19 -------------------
 server.py | 35 +++++++++++++++++++++++++++++++++--
 3 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/edit.py b/edit.py
index f9eafb7..d776e06 100644
--- a/edit.py
+++ b/edit.py
@@ -119,18 +119,6 @@ def getfielddescription(path):
 		desc = '<br>'+desc
 	return desc
 
-edit_handlers = {}
-def edit_handler(*tables, field=None):
-	def wrapper(func):
-		for table in tables:
-			if table not in edit_handlers:
-				edit_handlers[table] = {}
-			if field not in edit_handlers[table]:
-				edit_handlers[table][field] = []
-			edit_handlers[table][field].append(func)
-		return func
-	return wrapper
-
 @app.route('/internal/edit', methods=['GET', 'POST'])
 @mod_required
 @csrf_protect
diff --git a/jobs.py b/jobs.py
index 0718d7d..509697a 100644
--- a/jobs.py
+++ b/jobs.py
@@ -99,25 +99,6 @@ def jobs_worker_ping(hostname):
 	query('REPLACE INTO worker (hostname, last_ping) values (?, ?)', hostname, datetime.now())
 	return 'OK',200
 
-job_handlers = {}
-def job_handler(*types, state='finished'):
-	def wrapper(func):
-		for jobtype in types:
-			if jobtype not in job_handlers:
-				job_handlers[jobtype] = {}
-			if jobtype not in job_handlers[jobtype]:
-				job_handlers[jobtype][state] = []
-			job_handlers[jobtype][state].append(func)
-			return func
-	return wrapper
-
-def schedule_job(jobtype, data=None, priority=0):
-	if not data:
-		data = {}
-	modify('INSERT INTO jobs (type, priority, data, time_created) VALUES (?, ?, ?, ?)',
-			jobtype, priority, json.dumps(data, default=date_json_handler), datetime.now())
-
-
 @app.route('/internal/jobs/api/job/<int:id>/ping', methods=['GET', 'POST'])
 @jobs_api_token_required
 def jobs_ping(id):
diff --git a/server.py b/server.py
index fba13c7..5db9de3 100644
--- a/server.py
+++ b/server.py
@@ -461,14 +461,45 @@ def dbstatus():
 		clusters[cluster].append(host)
 	return render_template('dbstatus.html', clusters=clusters, statuses=status, vars=variables), 200
 
-from edit import edit_handler
+
+job_handlers = {}
+def job_handler(*types, state='finished'):
+	def wrapper(func):
+		for jobtype in types:
+			if jobtype not in job_handlers:
+				job_handlers[jobtype] = {}
+			if jobtype not in job_handlers[jobtype]:
+				job_handlers[jobtype][state] = []
+			job_handlers[jobtype][state].append(func)
+			return func
+	return wrapper
+
+def schedule_job(jobtype, data=None, priority=0):
+	if not data:
+		data = {}
+	modify('INSERT INTO jobs (type, priority, data, time_created) VALUES (?, ?, ?, ?)',
+			jobtype, priority, json.dumps(data, default=date_json_handler), datetime.now())
+
+edit_handlers = {}
+def edit_handler(*tables, field=None):
+	def wrapper(func):
+		for table in tables:
+			if table not in edit_handlers:
+				edit_handlers[table] = {}
+			if field not in edit_handlers[table]:
+				edit_handlers[table][field] = []
+			edit_handlers[table][field].append(func)
+		return func
+	return wrapper
+
+import edit
 import feeds
 import importer
 import stats
 if 'ICAL_URL' in config:
 	import meetings
 import l2pauth
-from jobs import job_handler, schedule_job
+import jobs
 import sorter
 import encoding
 import timetable
-- 
GitLab