- Correction of behaviour where boolean fields were not properly initialised

- Ensure that primary and financial contact fields are properly saved
This commit is contained in:
Josako
2025-11-25 13:15:11 +01:00
parent 3815399a7e
commit 20fb2eee70
5 changed files with 33 additions and 16 deletions

View File

@@ -119,7 +119,7 @@ def edit_catalog(catalog_id):
catalog = Catalog.query.get_or_404(catalog_id)
tenant_id = session.get('tenant').get('id')
form = EditCatalogForm(request.form, obj=catalog)
form = EditCatalogForm(obj=catalog)
full_config = cache_manager.catalogs_config_cache.get_config(catalog.type)
if request.method == 'POST' and form.validate_on_submit():
form.populate_obj(catalog)
@@ -190,7 +190,7 @@ def edit_processor(processor_id):
processor.catalog = None
# Create form instance with the processor
form = EditProcessorForm(request.form, obj=processor)
form = EditProcessorForm(obj=processor)
full_config = cache_manager.processors_config_cache.get_config(processor.type)
form.add_dynamic_fields("configuration", full_config, processor.configuration)
@@ -290,7 +290,7 @@ def edit_retriever(retriever_id):
retriever = Retriever.query.get_or_404(retriever_id)
# Create form instance with the retriever
form = EditRetrieverForm(request.form, obj=retriever)
form = EditRetrieverForm(obj=retriever)
retriever_config = cache_manager.retrievers_config_cache.get_config(retriever.type, retriever.type_version)
form.add_dynamic_fields("configuration", retriever_config, retriever.configuration)
@@ -575,7 +575,7 @@ def edit_document(document_id):
@roles_accepted('Super User', 'Partner Admin', 'Tenant Admin')
def edit_document_version(document_version_id):
doc_vers = DocumentVersion.query.get_or_404(document_version_id)
form = EditDocumentVersionForm(request.form, obj=doc_vers)
form = EditDocumentVersionForm(obj=doc_vers)
doc_vers = DocumentVersion.query.get_or_404(document_version_id)
catalog_id = doc_vers.document.catalog_id

View File

@@ -165,8 +165,8 @@ class EditEveAIAgentForm(BaseEditComponentForm):
class EditEveAITaskForm(BaseEditComponentForm):
task_description = StringField('Task Description', validators=[Optional()])
expected_outcome = StringField('Expected Outcome', validators=[Optional()])
task_description = TextAreaField('Task Description', validators=[Optional()])
expected_outcome = TextAreaField('Expected Outcome', validators=[Optional()])
class EditEveAIToolForm(BaseEditComponentForm):

View File

@@ -199,7 +199,7 @@ def specialist():
@roles_accepted('Super User', 'Partner Admin', 'Tenant Admin')
def edit_specialist(specialist_id):
specialist = Specialist.query.get_or_404(specialist_id)
form = EditSpecialistForm(request.form, obj=specialist)
form = EditSpecialistForm(obj=specialist)
specialist_config = cache_manager.specialists_config_cache.get_config(specialist.type, specialist.type_version)
form.add_dynamic_fields("configuration", specialist_config, specialist.configuration)
@@ -451,7 +451,7 @@ def edit_task(task_id):
def save_task(task_id):
task = EveAITask.query.get_or_404(task_id) if task_id else EveAITask()
tenant_id = session.get('tenant').get('id')
form = EditEveAITaskForm(formdata=request.form, obj=task) # Bind explicit formdata
form = EditEveAITaskForm(obj=task) # Bind explicit formdata
if form.validate_on_submit():
try:
@@ -725,7 +725,7 @@ def specialist_magic_link():
def edit_specialist_magic_link(specialist_magic_link_id):
specialist_ml = SpecialistMagicLink.query.get_or_404(specialist_magic_link_id)
# We need to pass along the extra kwarg specialist_id, as this id is required to initialize the form
form = EditSpecialistMagicLinkForm(request.form, obj=specialist_ml, specialist_id=specialist_ml.specialist_id)
form = EditSpecialistMagicLinkForm(obj=specialist_ml, specialist_id=specialist_ml.specialist_id)
# Find the Specialist type and type_version to enable to retrieve the arguments
specialist = Specialist.query.get_or_404(specialist_ml.specialist_id)

View File

@@ -145,7 +145,7 @@ def edit_partner_service(partner_service_id):
partner_service = PartnerService.query.get_or_404(partner_service_id)
partner_id = session['partner']['id']
form = EditPartnerServiceForm(request.form, obj=partner_service)
form = EditPartnerServiceForm(obj=partner_service)
partner_service_config = cache_manager.partner_services_config_cache.get_config(partner_service.type,
partner_service.type_version)
form.add_dynamic_fields("configuration", partner_service_config, partner_service.configuration)

View File

@@ -262,6 +262,25 @@ def user():
return render_template('user/user.html', form=form)
def _populate_user_from_form(form: EditUserForm, user: User) -> None:
"""Vul het User-object met veilige velden uit het formulier.
Let op:
- Relaties zoals ``roles`` worden hier bewust NIET gezet.
- Systeemvelden / read-only velden (tenant_id, confirmed_at, login_count, ...)
laten we hier ongemoeid.
"""
# Basisgegevens
user.first_name = form.first_name.data
user.last_name = form.last_name.data
user.valid_to = form.valid_to.data
# Contact-flags
user.is_primary_contact = form.is_primary_contact.data
user.is_financial_contact = form.is_financial_contact.data
@user_bp.route('/user/<int:user_id>', methods=['GET', 'POST'])
@roles_accepted('Super User', 'Tenant Admin', 'Partner Admin')
def edit_user(user_id):
@@ -269,10 +288,8 @@ def edit_user(user_id):
form = EditUserForm(obj=user)
if form.validate_on_submit():
# Populate the user with form data
user.first_name = form.first_name.data
user.last_name = form.last_name.data
user.valid_to = form.valid_to.data
# Vul het user-object met veilige velden uit het formulier
_populate_user_from_form(form, user)
user.updated_at = dt.now(tz.utc)
# Update roles
@@ -622,7 +639,7 @@ def edit_tenant_make(tenant_make_id):
tenant_make = TenantMake.query.get_or_404(tenant_make_id)
# Create form instance with the tenant make
form = EditTenantMakeForm(request.form, obj=tenant_make)
form = EditTenantMakeForm(obj=tenant_make)
# Initialiseer de allowed_languages selectie met huidige waarden
if request.method == 'GET':
@@ -756,7 +773,7 @@ def edit_consent_version(consent_version_id):
cv = ConsentVersion.query.get_or_404(consent_version_id)
# Create form instance with the tenant make
form = EditConsentVersionForm(request.form, obj=cv)
form = EditConsentVersionForm(obj=cv)
if form.validate_on_submit():
# Update basic fields