diff --git a/settings.py b/settings.py index 08d59f1..a06b74b 100644 --- a/settings.py +++ b/settings.py @@ -1,4 +1,4 @@ -from wtforms import SubmitField, StringField, FloatField, HiddenField, validators, Form +from wtforms import SubmitField, StringField, FloatField, HiddenField, validators, Form, SelectField from flask_wtf import FlaskForm from flask import request, render_template, redirect from main import db, app, ma @@ -9,6 +9,17 @@ from flask_login import login_required, current_user # pylint: disable=no-member +################################################################################ +# Class describing AI_MODEL in the database, and via sqlalchemy, connected to the DB as well +################################################################################ +class AI_Model(db.Model): + __tablename__ = "ai_model" + id = db.Column(db.Integer, primary_key=True ) + name = db.Column(db.String) + + def __repr__(self): + return f"" + ################################################################################ # Class describing Settings in the database, and via sqlalchemy, connected to the DB as well ################################################################################ @@ -17,6 +28,8 @@ class Settings(db.Model): import_path = db.Column(db.String) storage_path = db.Column(db.String) recycle_bin_path = db.Column(db.String) + default_model = db.Column(db.Integer,db.ForeignKey('ai_model.id'), unique=True, nullable=False) + default_threshold = db.Column(db.Integer) def __repr__(self): return f"" @@ -40,6 +53,8 @@ class SettingsForm(FlaskForm): import_path = StringField('Path(s) to import from:', [validators.DataRequired()]) storage_path = StringField('Path to store sorted images to:', [validators.DataRequired()]) recycle_bin_path = StringField('Path to temporarily store deleted images in:', [validators.DataRequired()]) + default_model = SelectField( 'default_model', choices=[(c.id, c.name) for c in AI_Model.query.order_by('id')] ) + default_threshold = StringField('Face Distance threshold (below is a match):', [validators.DataRequired()]) submit = SubmitField('Save' ) ################################################################################ @@ -62,6 +77,8 @@ def settings(): s.import_path = request.form['import_path'] s.storage_path = request.form['storage_path'] s.recycle_bin_path = request.form['recycle_bin_path'] + s.default_model = request.form['default_model'] + s.default_threshold = request.form['default_threshold'] db.session.commit() return redirect( '/settings' ) except SQLAlchemyError as e: diff --git a/templates/settings.html b/templates/settings.html index eabbc77..34a42a8 100644 --- a/templates/settings.html +++ b/templates/settings.html @@ -9,7 +9,11 @@ {% elif field.type != 'SubmitField' %}
{{ field.label( class="input-group-text col-3 justify-content-end" ) }} - {{ field( class="form-control col-9" ) }} + {% if field.type == 'SelectField' %} + {{ field( class="form-select col-9" ) }} + {% else %} + {{ field( class="form-control col-9" ) }} + {% endif %}
{% endif %} {% endfor %}