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")