Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overview of data structures #5117

Open
viktorvanwijk opened this issue Feb 21, 2025 · 0 comments
Open

Overview of data structures #5117

viktorvanwijk opened this issue Feb 21, 2025 · 0 comments
Labels

Comments

@viktorvanwijk
Copy link
Contributor

viktorvanwijk commented Feb 21, 2025

WIP

classDiagram
	%% Classes
    class FormioData{
        data
    }

    class Appointment{
    	extract_email_addresses()
    }
    	
	class EvaluateDMNAction{
		eval()
	}
	
	class EditGridField{
		run_child_validation
	}
	
	class ObjectsAPIV2Handler{
		get_record_data()
		get_update_payment_status_data()
	}
	
	class SubmissionStepViewSet{
		logic_check()
	}
	
	class DataContainer{
		data
		initial_data
		update()
		get_updated_step_data()
	}
	
	class SubmissionValueVariablesState{
		get_data()
		set_values()
		get_variables_in_submission_step()
	}
	
	class SubmissionValueVariableManager{
		bulk_create_or_update_form_data()
	}
	
	class JSONDumpRegistration{
		register_submission()
		post_process() (not a class plugin, but closely related)
		process_component () (not a class plugin, but closely related)
	}
	
 	class CosignState{
 		_find_component()
	}
	
	class ComponentRegistry{
		update_config()
	}
	
	class BasePlugin{
		mutate_config_dynamically()
	}
	
	class FormioConfigurationWrapper{
		configuration
		component_map
		is_visible_in_frontend()
	}
	
	class StepDataSerializer{
		apply_hidden_state()
	}
	
	class FormDefinition{
		configuration_wrapper
	}
	
	class Submission{
		data
		total_configuration_wrapper
	}
	
	class SubmissionStepCompletionSerializer{
		validate()
	}
	
	class FormVariableSerializer{
		validate()
	}
	
	class FormDefinitionSerializer{
		to_representation()
	}
	
	class FormVariable{
		as_json_schema()
		derive_info_from_component()
	}
	
	class SubmissionFileAttachment{
		_get_formio_config_property
	}
	
	class EmailVerificationSerializer{
		validate()
	}
	
	
	%% TODO: put the properties of the receiving or sending node on the relation?


	%% FormioData
    FormioData <.. get_variables_for_context
    FormioData <.. Appointment
    FormioData <.. EvaluateDMNAction
    FormioData <.. EditGridField
    FormioData <.. transform_editgrid_values
    FormioData <.. ObjectsAPIV2Handler
    FormioData <.. SubmissionStepViewSet
    FormioData <.. evaluate_form_logic
    FormioData <.. DataContainer
    FormioData <.. SubmissionValueVariableState
    FormioData <.. SubmissionValueVariableManager
    
    SubmissionStepViewSet ..> evaluate_form_logic
    %% TODO: does it make sense to include a method of SubmissionValueVariablesState here?
    %% TODO: also check other relations where this is the case.
    evaluate_form_logic ..> SubmissionValueVariablesState : .set_values(FormioData)
    
    %% DataContainer
    DataContainer <.. JSONDumpRegistration : .data
    DataContainer <.. CosignState : .data
    DataContainer <.. evaluate_form_logic : .data, .update, .get_updated_step_data
    DataContainer <.. check_submission_logic : .data
    
    JSONDumpRegistration ..> rewrite_formio_components : DataContainer.data
    rewrite_formio_components ..> ComponentRegistry : DataContainer.data
    ComponentRegistry ..> BasePlugin : DataContainer.data
    
    CosignState ..> FormioConfigurationWrapper : .is_visible_in_frontend(DataContainer.data)
    FormioConfigurationWrapper ..> is_visible_in_frontend : DataContainer.data
    
    %% TODO: this might need a different relation???
    evaluate_form_logic ..> iter_evaluate_rules : DataContainer.data
    evaluate_form_logic ..> get_dynamic_configuration : DataContainer.data
    get_dynamic_configuration ..> rewrite_formio_components : DataContainer.data
    evaluate_form_logic ..> FormioData : DataContainer.initial_data
    evaluate_form_logic ..> FormioConfigurationWrapper : .is_visible_in_frontend(DataContainer.data)
    
    check_submission_logic ..> iter_evaluate_rules : DataContainer.data
    
    %% FormioConfigurationWrapper
    FormioConfigurationWrapper <.. convert_simple_conditionals
    FormioConfigurationWrapper <.. StepDataSerializer
    FormioConfigurationWrapper <.. FormDefinition
    FormioConfigurationWrapper <.. Submission
    
    %% FormDefinition
    FormDefinition <.. SubmissionStepCompletionSerializer
    FormDefinition <.. FormVariableSerializer
    FormDefinition <.. FormDefinitionSerializer
    FormDefinition <.. objects_api._lookup_component
    FormDefinition <.. FormVariable
    FormDefinition <.. evaluate_form_logic
    FormDefinition <.. check_submission_logic
    FormDefinition <.. Submission
    FormDefinition <.. SubmissionFileAttachment
    FormDefinition <.. SubmissionValueVariablesState
    
    SubmissionStepCompletionSerializer ..> get_dynamic_configuration : FormDefinition.configuration_wrapper
    get_dynamic_configuration ..> rewrite_formio_components : FormDefinition.configuration_wrapper
    get_dynamic_configuration ..> get_translated_custom_error_messages : FormDefinition.confguration_wrapper
    get_dynamic_configuration ..> localize_components : FormDefinition.configuration_wrapper
    get_dynamic_configuration ..> inject_prefill : FormDefinition.configuration_wrapper
    
    FormDefinitionSerializer ..> rewrite_formio_components_for_request
    
    %% Submission
    Submission <.. CosignState : .total_configuration_wrapper
    Submission <.. prefill_variables : .total_configuration_wrapper
    Submission <.. JSONDumpRegistration : .total_configuration_wrapper
    Submission <.. EmailVerificationSerializer : .total_configuration_wrapper
    
    %% SubmissionValueVariablesState
    SubmissionValueVariablesState <.. CosignState : .get_data()
    SubmissionValueVariablesState <.. JSONDumpRegistration : .get_data()
    SubmissionValueVariablesState <.. ObjectsAPIV2Handler : .get_data()
    SubmissionValueVariablesState <.. Submission : .get_data()
    SubmissionValueVariablesState <.. SubmissionStep : .get_data()

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant