Feat(SQL, UI): Logic for Get-Many SQL Stored Procedures refactored to use Calc Stored Procedures and Dog Command Links page styling improved.

This commit is contained in:
2025-07-01 21:21:51 +01:00
parent caeb13429a
commit 0d1e644e6c
102 changed files with 6971 additions and 1797 deletions

View File

@@ -16,6 +16,7 @@ from dog_training.business_objects.base import Base
from dog_training.business_objects.dog.command import Command
from dog_training.business_objects.dog.dog import Dog
from dog_training.business_objects.dog.obedience_level import Obedience_Level
from dog_training.helpers.helper_app import Helper_App
# from dog_training.models.model_view_store import Model_View_Store # circular
# from dog_training.models.model_view_base import Model_View_Base
from dog_training.forms.base import Form_Base
@@ -23,7 +24,7 @@ import dog_training.lib.argument_validation as av
# external
from flask import Flask, render_template, request, flash, redirect, url_for, current_app
from flask_wtf import FlaskForm
from wtforms import SelectField, BooleanField, SubmitField
from wtforms import SelectField, BooleanField, StringField, SubmitField
from wtforms.validators import DataRequired, Email, ValidationError
import markupsafe
from flask_wtf.recaptcha import RecaptchaField
@@ -31,6 +32,9 @@ from abc import ABCMeta, abstractmethod
import json
class Filters_Dog_Command_Link(Form_Base):
search = StringField(
'Search'
)
id_dog = SelectField(
'Dog'
, choices = [Form_Base.get_select_option_all()]
@@ -48,17 +52,22 @@ class Filters_Dog_Command_Link(Form_Base):
@classmethod
def from_json(cls, json):
_m = f'{cls.__qualname__}.from_json'
Helper_App.console_log(f'{_m}\njson: {json}')
filters = cls()
filters.id_dog.choices = [(json[Dog.ATTR_ID_DOG], json[Dog.ATTR_ID_DOG])]
filters.search.data = json[Base.FLAG_SEARCH_TEXT]
# filters.id_dog.choices = [(json[Dog.ATTR_ID_DOG], json[Dog.ATTR_ID_DOG])]
filters.id_dog.data = json[Dog.ATTR_ID_DOG]
filters.id_command.choices = [(json[Command.ATTR_ID_COMMAND], json[Command.ATTR_ID_COMMAND])]
# filters.id_command.choices = [(json[Command.ATTR_ID_COMMAND], json[Command.ATTR_ID_COMMAND])]
filters.id_command.data = json[Command.ATTR_ID_COMMAND]
filters.active_only.data = av.input_bool(json[Base.FLAG_ACTIVE], Base.FLAG_ACTIVE, f'{cls.__name__}.from_json')
filters.active_only.data = av.input_bool(json[Base.FLAG_ACTIVE_ONLY], Base.FLAG_ACTIVE_ONLY, f'{cls.__name__}.from_json')
# Helper_App.console_log(f'Command: {command}')
return filters
def to_json(self):
return {
Dog.FLAG_DOG: self.id_dog.data
Base.FLAG_SEARCH_TEXT: self.search.data
, Dog.FLAG_DOG: self.id_dog.data
, Command.FLAG_COMMAND: self.id_command.data
, Base.FLAG_ACTIVE: self.active_only.data
, Base.FLAG_ACTIVE_ONLY: self.active_only.data
}