Skip to main content

Objectives - Legacy technical guide

Scope and architecture​

Legacy objective questions are part of an Assessment questionnaire used by interview participant records. An objective-evaluation question can own ordered subquestions. The interview controller loads them and the Twig view chooses the simple, range or select input partial for each type. Associated objective data can be structured records; a question is not necessarily a single scalar answer.

Components and data flow​

Verified in code: Company/AssessmentBundle/Controller/DefaultController.php retrieves objective-evaluation subquestions by objectiveEvaluation ordered by position, and copies question associations when duplicating assessments. AssessmentQuestionController.php creates and associates subquestions, and handles objective creation options for relevant types. Customer/InterviewBundle/Controller/DefaultController.php loads subquestions for the interview; Resources/views/Default/objectives_evaluation.html.twig includes the appropriate input partial.

Assessment, AssessmentQuestion, associated question items and answer structures belong to the legacy model. Interview participant context is distinct from the reusable questionnaire. Goal-related UserGoal classes also support development-plan workflows; inspect the actual question type before treating them as interview performance-objective records. Do not equate these records with nextgen review answer entities.

Configuration, permissions and lifecycle​

The legacy questionnaire supplies question ordering, subquestions, required state and applicable role options. Periods and interview campaign configuration determine the applicable context. Menu and authoring access, participant ownership, campaign state and reopen rights must all be checked at their respective boundaries. The inspected question type template gates dev_objectives on activate_objective_dev; this is a development-objective gate and is not evidence that all performance-objective questions use it.

No generic API method/path is asserted for legacy objective answers here: trace the deployed routes and controller call sites for the specific question type. Duplicating a questionnaire is a persisted operation; it is not established as migration of participant answers. See Legacy configuration and Interviews technical.

Failures, dependencies and extension​

Investigate missing subquestions by their parent association and position, missing expected goals by period/campaign/population, and save failures by role, question type and legacy validation. For changes, trace authoring, stored type/options, renderer, answer handling, permission checks and exports together. Do not log employee answers unnecessarily. Legacy and nextgen models coexist; conversion, shared identifiers, queue behavior and output parity are Not verified. No AIHub dependency was established.

Evidence and limitations​

Verified in code: the controllers and Twig template named above, plus Company/AssessmentBundle/Resources/views/Default/question_type.html.twig. Not verified: complete live legacy objective submission, concrete route contracts for every subtype, production feature flags, migration, permissions parity and downstream PDF behavior. No live legacy objective screenshot was captured. Compare Redesign technical before planning cross-generation work.

Last updated on 3 November 2026