Source code for viiapackage.reporting.helper_functions.get_beoordeling_data

### ===================================================================================================================
###  FUNTION: Get data for the beoordelings report
### ===================================================================================================================
# Copyright ©2026 Haskoning Nederland B.V.
# For use by VIIA

### ===================================================================================================================
###  1. Import modules
### ===================================================================================================================

# General imports
from __future__ import annotations
from typing import TYPE_CHECKING

# References for functions and classes in the viiaPackage
if TYPE_CHECKING:
    from viiapackage.viiaStatus import ViiaProject
from viiapackage.database.viia_myviia_get_info import myviia_get_object_deel


### ===================================================================================================================
###  2. Helper function
### ===================================================================================================================

[docs]def get_beoordeling_data(project: ViiaProject) -> dict: """ This function will generate dictionary keys for beoordeling data that can later be used as jinja tags for templating. .. note:: Currently only available in Dutch. Input - project (obj): VIIA project object containing collections of fem objects and project variables. Output - Dictionary of jinja tags assigned to corresponding info. """ context = {} # collect opname images location # Obtain object part opname objectpart_id = None for objectpart in project.project_information['objectdelen']: if objectpart['naam'] == project.project_information['objectdeel']: objectpart_id = objectpart['id'] break if not objectpart_id: raise ValueError("ERROR: Could not find the correct objectpart.") object_part_details = myviia_get_object_deel(object_deel_id=objectpart_id, token=project.token) if project.project_information['inspection_type'] in ['TYPO', 'LOOV', 'EVS2']: project.project_information['object_deel_opname'] = object_part_details['object_deel_opname'] project.project_information['opname_images_folder'] = 'opname_images' elif project.project_information['inspection_subtype'] in ['VAL', 'VAL-P']: project.project_information['object_deel_opname'] = object_part_details['object_deel_opname_val'] project.project_information['opname_images_folder'] = 'opname_val_images' elif project.project_information['inspection_subtype'] in ['VAL-C']: project.project_information['object_deel_opname'] = object_part_details['object_deel_opname_val2'] project.project_information['opname_images_folder'] = 'opname_val2_images' # Conclusion of analysis context['conclusie_analyse'] = project.project_information['conclusie_analyse'] if 'op norm' in context['conclusie_analyse']: context['conclusie_analyse'] = True elif 'versterking benodigd' in context['conclusie_analyse']: context['conclusie_analyse'] = False else: context['conclusie_analyse'] = None # If the object is Praktijkaanpak, we need to know the expected type of strengthening for the objectpart. context['categorie_versterking'] = 'Te bepalen' categorie_versterking_map = { 1: 'te bepalen', 2: 'op norm', 3: 'op norm met opmerkingen', 4: 'versterking benodigd', 5: 'versterking benodigd - beperkt', 6: 'versterking benodigd - licht', 7: 'versterking benodigd - middel', 8: 'versterking benodigd - zwaar', 9: 'nader onderzoek'} for object_deel in project.project_information['objectdelen']: if object_deel['naam'] == project.project_information['objectdeel'] and 'categorie_versterking' in object_deel\ and object_deel['categorie_versterking'] is not None and object_deel['categorie_versterking']['id'] in\ categorie_versterking_map: context['categorie_versterking'] = categorie_versterking_map[object_deel['categorie_versterking']['id']] break # Find adjective to use in report if project.project_information['building_type_simple'] == 'woning': context['adj_building_type_simple'] = 'de' else: context['adj_building_type_simple'] = 'het' return context
### =================================================================================================================== ### 3. End of script ### ===================================================================================================================