|
@@ -161,7 +161,7 @@ def scheduler(stop_event):
|
|
|
# Store the date in the DB
|
|
|
EmailReminderLog.create(date=email_date.strftime('%Y-%m-%d'), email=user.email, username=user.username, interval=interval.interval).save()
|
|
|
else:
|
|
|
- print("scheduler suspended")
|
|
|
+ pass
|
|
|
|
|
|
|
|
|
# Get all email reminders from the DB
|
|
@@ -188,9 +188,9 @@ def scheduler(stop_event):
|
|
|
# Remove all reminders from the DB that are older than today's date
|
|
|
reminder_cleanup()
|
|
|
except Exception as e:
|
|
|
- print(e)
|
|
|
+ pass
|
|
|
|
|
|
- time.sleep(1) # Sleep for 5 seconds
|
|
|
+ time.sleep(3) # Sleep for 5 seconds
|
|
|
|
|
|
|
|
|
# Encrypt the password with SHA256
|
|
@@ -198,7 +198,6 @@ def encrypt_password(password):
|
|
|
hash = hashlib.sha256(password.encode('utf-8')).hexdigest()
|
|
|
return hash
|
|
|
|
|
|
-
|
|
|
#db.connect()
|
|
|
|
|
|
|
|
@@ -314,17 +313,12 @@ def admin_password_check():
|
|
|
|
|
|
# Start the scheduler loop in another thread
|
|
|
shutdown_scheduler = threading.Event()
|
|
|
-#scheduler_thread = threading.Thread(target=scheduler, args=(shutdown_scheduler,))
|
|
|
-#scheduler_thread.start()
|
|
|
-
|
|
|
scheduler_thread = threading.Thread(target=scheduler, args=(shutdown_scheduler,))
|
|
|
scheduler_thread.start()
|
|
|
-#scheduler_thread.join()
|
|
|
|
|
|
# Start the HTTP Server
|
|
|
app = Flask(__name__)
|
|
|
-#app.secret_key = os.urandom(24)
|
|
|
-app.secret_key = "DEVELOPMENT"
|
|
|
+app.secret_key = os.urandom(24)
|
|
|
|
|
|
|
|
|
def format_time_ago(timestamp):
|
|
@@ -532,11 +526,14 @@ def admin():
|
|
|
except Exception as e:
|
|
|
email_reminders = None
|
|
|
|
|
|
+ # Suspend setting
|
|
|
+ suspend_setting_setting = Settings.get(Settings.name == 'Suspend Scheduler')
|
|
|
+ suspend_setting = str(suspend_setting_setting.value).lower()
|
|
|
+
|
|
|
context = {
|
|
|
'ils_user_count': ils_users,
|
|
|
- 'ils_users_expiring': ils_expiring_users,
|
|
|
- 'email_reminders': email_reminders,
|
|
|
'total_email_reminders': total_email_reminders,
|
|
|
+ 'suspend_setting': suspend_setting,
|
|
|
}
|
|
|
|
|
|
return render_template('admin.html', context=context)
|
|
@@ -654,7 +651,6 @@ def admin_ils_users():
|
|
|
username = request.form.get('username')
|
|
|
email = request.form.get('email')
|
|
|
date = request.form.get('date')
|
|
|
- print(date)
|
|
|
# Check to see if username already exists
|
|
|
try:
|
|
|
user = IlsUser.filter(IlsUser.username == username).first()
|
|
@@ -679,7 +675,7 @@ def admin_ils_users():
|
|
|
# Suspend setting
|
|
|
suspend_setting_setting = Settings.get(Settings.name == 'Suspend Scheduler')
|
|
|
suspend_setting = str(suspend_setting_setting.value).lower()
|
|
|
- print(suspend_setting)
|
|
|
+
|
|
|
|
|
|
context = {
|
|
|
'users': users,
|
|
@@ -801,9 +797,14 @@ def admin_ils_users_edit(id):
|
|
|
message = 'User updated successfully'
|
|
|
Log.create(username=session['username'], action='Updated ILS user: %s' % username, ).save()
|
|
|
|
|
|
+ # Suspend setting
|
|
|
+ suspend_setting_setting = Settings.get(Settings.name == 'Suspend Scheduler')
|
|
|
+ suspend_setting = str(suspend_setting_setting.value).lower()
|
|
|
+
|
|
|
context = {
|
|
|
'user': user,
|
|
|
'message': message,
|
|
|
+ 'suspend_setting': suspend_setting,
|
|
|
}
|
|
|
|
|
|
return render_template('admin_ils_user_edit.html', context=context)
|
|
@@ -913,7 +914,6 @@ def settings():
|
|
|
try:
|
|
|
setting = Settings.get(Settings.id == id)
|
|
|
except Exception as e:
|
|
|
- print(e)
|
|
|
setting = None
|
|
|
|
|
|
if setting:
|
|
@@ -960,9 +960,14 @@ def settings():
|
|
|
# Get settings from DB
|
|
|
all_settings = Settings.select().execute()
|
|
|
|
|
|
+ # Suspend setting
|
|
|
+ suspend_setting_setting = Settings.get(Settings.name == 'Suspend Scheduler')
|
|
|
+ suspend_setting = str(suspend_setting_setting.value).lower()
|
|
|
+
|
|
|
context = {
|
|
|
'settings': all_settings,
|
|
|
'message': message,
|
|
|
+ 'suspend_setting': suspend_setting,
|
|
|
}
|
|
|
|
|
|
return render_template('settings.html', context=context)
|
|
@@ -988,7 +993,6 @@ def schedule():
|
|
|
try:
|
|
|
int(interval)
|
|
|
except Exception as e:
|
|
|
- print(e)
|
|
|
message = 'Error creating schedule. Value submitted must be a whole number.'
|
|
|
return render_template('schedule.html', context={'message': message, 'schedules': schedules})
|
|
|
|
|
@@ -996,7 +1000,6 @@ def schedule():
|
|
|
try:
|
|
|
schedule = Schedule.get(Schedule.interval == interval)
|
|
|
except Exception as e:
|
|
|
- print(e)
|
|
|
schedule = None
|
|
|
|
|
|
if schedule:
|
|
@@ -1009,9 +1012,14 @@ def schedule():
|
|
|
|
|
|
schedules = Schedule.select().order_by(Schedule.interval.cast("INTEGER")).execute()
|
|
|
|
|
|
+ # Suspend setting
|
|
|
+ suspend_setting_setting = Settings.get(Settings.name == 'Suspend Scheduler')
|
|
|
+ suspend_setting = str(suspend_setting_setting.value).lower()
|
|
|
+
|
|
|
context = {
|
|
|
'schedules': schedules,
|
|
|
'message': message,
|
|
|
+ 'suspend_setting': suspend_setting,
|
|
|
}
|
|
|
|
|
|
return render_template('schedule.html', context=context)
|
|
@@ -1106,6 +1114,34 @@ def system_log():
|
|
|
return render_template('system_log.html', context=context)
|
|
|
|
|
|
|
|
|
+@app.route('/admin/system/scheduler/enable')
|
|
|
+def enable_scheduler():
|
|
|
+
|
|
|
+ if not requires_auth():
|
|
|
+ return redirect(url_for('login'))
|
|
|
+
|
|
|
+ # Get settings from DB
|
|
|
+ suspend_setting_setting = Settings.get(Settings.name == 'Suspend Scheduler')
|
|
|
+ suspend_setting_setting.value = False
|
|
|
+ suspend_setting_setting.save()
|
|
|
+
|
|
|
+ return redirect(request.referrer)
|
|
|
+
|
|
|
+
|
|
|
+@app.route('/admin/system/scheduler/disable')
|
|
|
+def disable_scheduler():
|
|
|
+
|
|
|
+ if not requires_auth():
|
|
|
+ return redirect(url_for('login'))
|
|
|
+
|
|
|
+ # Get settings from DB
|
|
|
+ suspend_setting_setting = Settings.get(Settings.name == 'Suspend Scheduler')
|
|
|
+ suspend_setting_setting.value = True
|
|
|
+ suspend_setting_setting.save()
|
|
|
+
|
|
|
+ return redirect(request.referrer)
|
|
|
+
|
|
|
+
|
|
|
@app.route('/admin/system/log/password/resets')
|
|
|
def password_reset_log():
|
|
|
# Check to see if user is logged in
|
|
@@ -1124,13 +1160,17 @@ def password_reset_log():
|
|
|
|
|
|
@app.route('/logout')
|
|
|
def logout():
|
|
|
- if 'username' in session:
|
|
|
- username = session['username']
|
|
|
- user = User.get(User.username == username)
|
|
|
- user.logged_in = False
|
|
|
- Log.create(username=session['username'], action='Logged out').save()
|
|
|
- user.save()
|
|
|
- session.pop('username', None)
|
|
|
+ try:
|
|
|
+ if 'username' in session:
|
|
|
+ username = session['username']
|
|
|
+ user = User.get(User.username == username)
|
|
|
+ user.logged_in = False
|
|
|
+ Log.create(username=session['username'], action='Logged out').save()
|
|
|
+ user.save()
|
|
|
+ except:
|
|
|
+ pass
|
|
|
+
|
|
|
+ session.pop('username', None)
|
|
|
return redirect(url_for('login'))
|
|
|
|
|
|
|
|
@@ -1143,7 +1183,6 @@ def login():
|
|
|
try:
|
|
|
user = User.filter(User.username == username and User.password == password).first()
|
|
|
except Exception as e:
|
|
|
- print(e)
|
|
|
user = None
|
|
|
session.pop('username', None)
|
|
|
|
|
@@ -1173,6 +1212,7 @@ def clean_up():
|
|
|
shutdown_scheduler.set()
|
|
|
http_server.stop()
|
|
|
|
|
|
+
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
print("------------------------- Start up -----------------------------")
|