Source code for q2_sdk.hq.models.form_info

from datetime import datetime
from typing import Optional
from lxml import etree

from .xml_helper import find_with_default


[docs] class FormInfo: """ Object representation of the Form information that comes in on a Q2 Online request """ def __init__(self, request_xml: Optional[etree.Element] = None): """ :param request_xml: XML node from Online request """ self.form_id: Optional[int] = None self.form_display_name: Optional[str] = None self.form_short_name: Optional[str] = None self.request_date: Optional[datetime] = None self.ui_selection_short_name: Optional[str] = None if request_xml is not None: self._hydrate_from_xml(request_xml) def _hydrate_from_xml(self, request_xml): form = request_xml.find(".//Form") self.form_id = find_with_default(form, "FormID", data_type=int) self.form_display_name = find_with_default(form, "FormDisplayName") self.form_short_name = find_with_default(form, "FormShortName") self.request_date = find_with_default(form, "RequestDate", data_type=datetime) self.ui_selection_short_name = find_with_default(form, "UiSelectionShortName")