implemented job archiving (via a Setting, and just viewing recent or all)
This commit is contained in:
20
job.py
20
job.py
@@ -1,8 +1,9 @@
|
||||
from wtforms import SubmitField, StringField, FloatField, HiddenField, validators, Form
|
||||
from flask_wtf import FlaskForm
|
||||
from flask import request, render_template
|
||||
from settings import Settings
|
||||
from main import db, app, ma
|
||||
from sqlalchemy import Sequence
|
||||
from sqlalchemy import Sequence, func
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
from status import st, Status
|
||||
from datetime import datetime, timedelta
|
||||
@@ -11,6 +12,8 @@ import pytz
|
||||
import socket
|
||||
from shared import PA_JOB_MANAGER_HOST, PA_JOB_MANAGER_PORT, NEWEST_LOG_LIMIT, OLDEST_LOG_LIMIT
|
||||
from flask_login import login_required, current_user
|
||||
from sqlalchemy.dialects.postgresql import INTERVAL
|
||||
from sqlalchemy.sql.functions import concat
|
||||
|
||||
# pylint: disable=no-member
|
||||
|
||||
@@ -103,13 +106,20 @@ def NewJob(name, num_files="0", wait_for=None, jex=None ):
|
||||
return job
|
||||
|
||||
################################################################################
|
||||
# /jobs -> show current settings
|
||||
# /jobs -> show jobs (default to only showing 'non-archived' jobs -- age is in
|
||||
# settings.job_archive_age
|
||||
################################################################################
|
||||
@app.route("/jobs", methods=["GET"])
|
||||
@app.route("/jobs", methods=["GET", "POST"])
|
||||
@login_required
|
||||
def jobs():
|
||||
page_title='Job list'
|
||||
jobs = Job.query.order_by(Job.id.desc()).all()
|
||||
settings = Settings.query.first()
|
||||
print( request.method )
|
||||
if request.method == 'POST':
|
||||
page_title='Job list (all)'
|
||||
jobs = Job.query.order_by(Job.id.desc()).all()
|
||||
else:
|
||||
page_title='Job list (recent)'
|
||||
jobs = Job.query.filter( Job.last_update >= (func.now() - func.cast(concat(settings.job_archive_age, 'DAYS'), INTERVAL)) ).order_by(Job.id.desc()).all()
|
||||
return render_template("jobs.html", jobs=jobs, page_title=page_title)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user