Renders a single page of an active survey as an HTML form, with questions displayed using configurable field types including text input, single/multiple choice (vertical and horizontal), and question grouping.
Survey — set as ReportType in def_report.
def Render(self, Param1="", Param2="", Param3="") -> str:
Param1 — the survey_guid of the target survey in data_surveys. The survey must be active, approved, and within its active_start/active_end window.
Param2 — the user_guid for the respondent (passed through but not used in the current query logic).
Param3 — the page_guid of the specific page to render. If empty, the first page (lowest page_order) is used.
Returns a full AdminLTE card HTML fragment with the survey title, page title, all question fields, and a "Next" submit button.
render_overall(question, question_guid, options_html, ordering, labels_options)Wraps a question's rendered options in the standard form-element div structure. Supports ordering="LR" (horizontal flex layout) and three label modes: top_label, inside_rows, and first_row.
render_input(question, question_guid, labels_options)Returns an HTML text input field for a free-text question.
render_singlechoice_v(question, question_guid, labels_options)Returns a vertical radio button group. Includes a script that activates optional text-input companions when a radio is selected.
render_multichoice_v(question, question_guid, labels_options)Returns a vertical checkbox group with optional text-input companions activated per selection.
render_singlechoice_h(question, question_guid, labels_options)Returns a horizontal radio button group.
render_multichoice_h(question, question_guid, labels_options)Returns a horizontal checkbox group.
render_slider(question, question_guid, labels_options)Placeholder — currently returns the string "render_slider" (not yet implemented).
render_buttons()Returns the "Next" submit button and a prepform JS stub that logs form field values to the browser console.
data_surveys, data_survey_pages, data_survey_questions, and data_survey_qchoices.data_survey_qchoices ordered by option_order. Options with a non-empty option_text render a companion text input alongside the choice control.question_group value are visually grouped under a shared group label; the first question in a group uses first_row label styling, subsequent ones use inside_rows.prepform('survey_form') on submit; full submission logic is not yet implemented.