git commit, converted over to base.html pulling Status*, rather than every render_template calling it. Tightened up naming for job manager, fixed a few bugs in there with items like div by zero, created the active jobs link/badge in navbar, have it invoked each time by base.html template and it gets active jobs from DB, pa_job_manager now initiliases from an empty DB and can work out where it is at, no loop/thread/or actual job code yet. jobs.py has basics of a NewJob(), so next step is to force that job to be executed in pa_job_manager, but its tea time

This commit is contained in:
2021-01-16 17:51:16 +11:00
parent dc2ea1265f
commit e138ab22aa
12 changed files with 156 additions and 72 deletions

View File

@@ -77,7 +77,17 @@
<a class="dropdown-item" href="{{url_for('forcescan')}}">Force Scan (delete data & rebuild)</a>
</div class="dropdow-menu">
</div class="nav-item dropdown">
</div clas="navbar-nav">
<div class="nav-item ml-5">
<a href="{{url_for('jobs')}}"}}<span class="navbar-text">Active Jobs:
{% if GetNumActiveJobs() != None %}
<span class="badge badge-danger text-white"}}>4</span>
{% else %}
<span class="badge">0</span>
{% endif %}
</a>
</div class="nav-item">
</div class="navbar-nav">
<form class="form-inline my-2 my-lg-0" method="POST" action="/search">
<input class="form-control mr-sm-2" type="search" placeholder="by file, date (YYYMMDD) or tag" aria-label="Search" name="term">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
@@ -85,9 +95,9 @@
</div class="collapse navbar-collapse">
</nav>
{% if message is defined and message|length %}
<div class="row alert alert-{{alert}}">
{{message|safe}}
{% if GetMessage()|length %}
<div class="row alert alert-{{GetAlert()}}">
{{ GetMessage()|safe}}
{{ ClearStatus() }}
</div>
{% endif %}

View File

@@ -3,9 +3,13 @@
{% block main_content %}
<div class="container">
<h3>{{page_title}}</h3>
<div class="row col-lg-12">
<label class="form-control-plaintext col-lg-2">Name:</label>
<label class="form-control-plaintext col-lg-10">{{job.name}}</label>
</div>
<div class="row col-lg-12">
<label class="form-control-plaintext col-lg-2">Start Time:</label>
<label class="form-control-plaintext col-lg-10">{{imp.start_time|vicdate}}</label>
<label class="form-control-plaintext col-lg-10">{{job.start_time|vicdate}}</label>
</div>
<div class="row col-lg-12">
<label class="form-control-plaintext col-lg-2">Duration:</label>
@@ -13,36 +17,46 @@
</div>
<div class="row col-lg-12">
<label class="form-control-plaintext col-lg-2">Last Update:</label>
<label class="form-control-plaintext col-lg-10">{{imp.last_update|vicdate}}</label>
<label class="form-control-plaintext col-lg-10">{{job.last_update|vicdate}}</label>
</div>
<div class="row col-lg-12">
<label class="form-control-plaintext col-lg-2">Current state:</label>
<label class="form-control-plaintext col-lg-10">{{imp.state}}</label>
<label class="form-control-plaintext col-lg-10">{{job.state}}</label>
</div>
{% if job.wait_for != None %}
<div class="row col-lg-12">
<label class="form-control-plaintext col-lg-2">Waiting on Job:</label>
<label class="form-control-plaintext col-lg-10"><a href="{{url_for('joblog', id=job.wait_for)}}">Job (id={{job.wait_for}})</a></label>
</div>
{% endif %}
<div class="row col-lg-12">
<label class="form-control-plaintext col-lg-2">Current File:</label>
<label class="form-control-plaintext col-lg-10">{{imp.current_file}}</label>
<label class="form-control-plaintext col-lg-10">{{job.current_file}}</label>
</div>
<div class="row col-lg-12">
{% set prog=(imp.current_pass/imp.num_passes*100)|round|int %}
{% set prog=(job.current_pass/job.num_passes*100)|round|int %}
<label class="form-control-plaintext col-lg-2">Passes:</label>
<div class="col-lg-10 px-0">
<div class="progress" style="height:80%">
<div class="progress-bar" role="progressbar" style="width: {{prog}}%;" aria-valuenow="{{prog}}" aria-valuemin="0" aria-valuemax="100">{{imp.current_pass}} of {{imp.num_passes}} - {{prog}}%</div>
<div class="progress-bar" role="progressbar" style="width: {{prog}}%;" aria-valuenow="{{prog}}" aria-valuemin="0" aria-valuemax="100">{{job.current_pass}} of {{job.num_passes}} - {{prog}}%</div>
</div>
</div>
</div>
<div class="row col-lg-12">
{% set prog=(imp.current_file_num/imp.num_files*100)|round|int %}
<label class="form-control-plaintext col-lg-2">Files in pass:</label>
<div class="col-lg-10 px-0">
{% if job.num_files > 0 %}
{% set prog=(job.current_file_num/job.num_files*100)|round|int %}
<div class="progress" style="height:80%">
<div class="progress-bar bg-info" role="progressbar" style="width: {{prog}}%;" aria-valuenow="{{prog}}" aria-valuemin="0" aria-valuemax="100">{{imp.current_file_num}} of {{imp.num_files}} - {{prog}}%</div>
<div class="progress-bar bg-info" role="progressbar" style="width: {{prog}}%;" aria-valuenow="{{prog}}" aria-valuemin="0" aria-valuemax="100">{{job.current_file_num}} of {{job.num_files}} - {{prog}}%</div>
</div>
{% else %}
N/A
{% endif %}
</div>
</div>
<div class="row col-lg-12">
<table id="import_tbl" class="table table-striped table-sm" data-toolbar="#toolbar" data-search="true">
<table id="jobort_tbl" class="table table-striped table-sm" data-toolbar="#toolbar" data-search="true">
<thead><tr class="thead-light"><th>When</th><th>Details</th></tr></thead>
<tbody>
{% for log in logs %}

View File

@@ -1,22 +1,48 @@
{% extends "base.html" %}
{% block main_content %}
<script>
var active_rows=Array()
var completed_rows=Array()
{% for job in jobs %}
row=`
<tr><td>
<a href="{{url_for('joblog', id=job.id )}}">{{job.name}}</td><td>{{job.start_time}}</td>
<td>
`
{% if job.pa_job_state != "Completed" %}
row +=`
<div class="progress">
{% set prog=(job.current_pass/job.num_passes*100)|round|int %}
<div class="progress-bar" role="progressbar" style="width: {{prog}}%;" aria-valuenow="{{prog}}" aria-valuemin="0" aria-valuemax="100">{{job.current_pass}} of {{job.num_passes}}</div>
</div>
</td></tr>
`
active_rows.push(row)
{% else %}
row +=`
{{job.last_update}}</td></td></tr>
`
completed_rows.push(row)
{% endif %}
{% endfor %}
</script>
<h3>{{page_title}}</h3>
<table id="import_tbl" class="table table-striped table-sm" data-toolbar="#toolbar" data-search="true">
<table id="job_tbl" class="table table-striped table-sm" data-toolbar="#toolbar" data-search="true">
<thead>
<tr class="thead-light"><th>Import Id</th><th>Import Started</th><th>Passes</th></tr>
<tr class="thead-light"><th>Active Jobs</th><th>Job Started</th><th>Passes</th></tr>
</thead>
<tbody>
{% for imp in imports %}
<tr><td><a href="{{url_for('importlog', id=imp.id )}}">{{imp.id}}</td><td>{{imp.start_time}}</td>
<td>
<div class="progress">
{% set prog=(imp.current_pass/imp.num_passes*100)|round|int %}
<div class="progress-bar" role="progressbar" style="width: {{prog}}%;" aria-valuenow="{{prog}}" aria-valuemin="0" aria-valuemax="100">{{imp.current_pass}} of {{imp.num_passes}}</div>
</div>
</td>
</tr>
{% endfor %}
<script>
for(el in active_rows)
document.write(active_rows[el])
document.write( '<tr class="thead-light"><th>Completed Jobs</th><th>Job Started</th><th>Job Completed</th></tr>' )
for(el in completed_rows)
document.write(completed_rows[el])
</script>
</tbody>
</table>
{% endblock main_content %}