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 Job #{job.id} to Look for face(s) in selected file(s)") return render_template("base.html")