53 lines
2.2 KiB
Python
53 lines
2.2 KiB
Python
from wtforms import SubmitField, StringField, HiddenField, validators, Form
|
|
from flask_wtf import FlaskForm
|
|
from flask import request, render_template, redirect
|
|
from main import db, app, ma
|
|
from sqlalchemy import Sequence
|
|
from sqlalchemy.exc import SQLAlchemyError
|
|
from status import st, Status
|
|
from files import Entry, File, FileRefimgLink
|
|
from person import Person, PersonRefimgLink
|
|
from refimg import Refimg
|
|
from flask_login import login_required, current_user
|
|
|
|
from job import Job, JobExtra, Joblog, NewJob
|
|
|
|
|
|
# pylint: disable=no-member
|
|
|
|
################################################################################
|
|
# /aistats -> placholder for some sort of stats
|
|
################################################################################
|
|
@app.route("/aistats", methods=["GET", "POST"])
|
|
@login_required
|
|
def aistats():
|
|
tmp=db.session.query(Entry,Person).join(File).join(FileRefimgLink).join(Refimg).join(PersonRefimgLink).join(Person).filter(FileRefimgLink.matched==True).all()
|
|
entries=[]
|
|
last_fname=""
|
|
for e, p in tmp:
|
|
if last_fname != e.name:
|
|
entry = { 'name': e.name, 'people': [] }
|
|
entries.append( entry )
|
|
last_fname = e.name
|
|
entry['people'].append( { 'tag': p.tag } )
|
|
return render_template("aistats.html", page_title='Placeholder', entries=entries)
|
|
|
|
|
|
################################################################################
|
|
# /run_ai_on -> CAM: needs more thought (what actual params, e.g list of file -
|
|
# tick, but which face or faces? are we forcing a re-finding of unknown faces
|
|
# or just looking for matches? (maybe in the long run there are different
|
|
# routes, not params - stuff we will work out as we go)
|
|
################################################################################
|
|
@app.route("/run_ai_on", methods=["POST"])
|
|
@login_required
|
|
def run_ai_on():
|
|
jex=[]
|
|
for el in request.form:
|
|
jex.append( JobExtra( name=f"{el}", value=request.form[el] ) )
|
|
print( f"would create new job with extras={jex}" )
|
|
job=NewJob( "run_ai_on", 0, None, jex )
|
|
st.SetAlert("success")
|
|
st.SetMessage( f"Created <a href=/job/{job.id}>Job #{job.id}</a> to Look for face(s) in selected file(s)")
|
|
return render_template("base.html")
|